文档章节

Java 实现追加写入HDFS

G
 GygesM
发布于 2017/04/24 17:31
字数 273
阅读 747
收藏 0
  • 先要进行写入的配置:
  private static Configuration conf = new Configuration();

    static {
        conf.setBoolean("dfs.support.append", true);
        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
        conf.setBoolean("dfs.client.block.write.replace-datanode-on-failure.enable", true);
    }

这些配置事固定的,第一个很容易理解,第二个和第三个,顾名思义替换数据节点datanode,如果不这样设置写入文件会报错。具体错误不在此罗列,有兴趣的可以不设置看一下

  • 创建追加写入的方法
     /**
         * json 存储
         *
         * @param
         * @param
         * @throws IOException
         */
        public static void write2hdfs(Object listContent, String filePath) throws IOException {
            ObjectMapper objectMapper = new ObjectMapper();
            FileSystem fs = null;
            Path path = new Path(filePath);
            FSDataOutputStream output = null;
            fs = path.getFileSystem(conf);
    //如果此文件不存在则创建新文件
            if (!fs.exists(path)) {
                fs.createNewFile(path);
            }
            output = fs.append(new Path(filePath));
            System.out.println(listContent.toString());
            output.write(objectMapper.writeValueAsString(listContent).getBytes("UTF-8"));
            output.write("\n".getBytes("UTF-8"));//换行
            fs.close();
            output.close();
        }
    

    由于起先的需求是要以一种文本格式写入hdfs,文本格式自己的规格,考虑到json格式的通用性,所以这里采用Jackson去处理数据封装成json格式的数据,你也可以创建自己的实体,规定实体各个字段写入hdfs的格式

© 著作权归作者所有

G

GygesM

粉丝 0
博文 17
码字总数 1027
作品 0
私信 提问
Hadoop入门进阶步步高(一)-环境准备

前言 Hadoop从存储上来说,是类似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System);从计算上来说,它通过MapRe...

帅锅锅
2015/08/18
61
0
centos6.5 安装hadoop2.7.6 1master2node

环境采用centos 6.5最小化安装,hadoop下载的hadoop2.7.6.tar.gz安装,Java下载的oracle官网的1.8.0_172的包安装。 参考了别人的文档,遇到了不同的问题。 1. 3台centos6.5 vmware 192.168.17...

简记
2018/04/23
0
0
Hadoop安装部署

本节课程概览 Hadoop 在windows 上伪分布式的安装过程 Hadoop 在linux 上单节点伪分布式的安装过程 集成Eclipse 开发环境 Hadoop UI 介绍 运行WordCounter 事例 第一部分:Hadoop 在windows...

Artemjor
2014/01/10
995
1
第9章 文件IO操作、正则表达式与多线程

第9章 文件IO操作、正则表达式与多线程 我们在《第6章 扩展函数与属性》中已经介绍过Kotlin中的类扩展的特性。使用Kotlin的扩展函数功能,我们可以直接为 String 类实现一个 inc() 函数,这个...

程序员诗人
2017/10/18
0
0
Hadoop 在Centos7上的伪分布式搭建

安装 SSH 客户端 安装SSH: 安装完成后,可以使用下面命令进行测试: 输入root账户的密码,如果可以正常登录,则说明SSH安装没有问题。测试正常后使用exit命令退出ssh。 安装 JAVA 环境 安装...

Menzel3
2017/11/03
122
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
697
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
39
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
25
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
74
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
73
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部