在谈到HDFS优化中,其中HDFS擅长处理大文件,而对于小文件常用的优化策略有压缩合并。在此列举小文件合并工具类供参考。

/**
* Get all the files in the directories that match the source file pattern
* and merge and sort them to only one file on HDFS is kept.
*
* Also adds a string between the files (useful for adding \n
* to a text file)
* @param srcf: a file pattern specifying source files
* @param dstf: a destination local file/directory
* @param endline: if an end of line character is added to a text file
* @exception: IOException
*/
public static void copyMergeFromLocal(String srcf, Path dst, boolean endline)throws IOException {Configuration conf = new Configuration();Path srcPath = new Path(srcf);FileSystem dstFs = srcPath.getFileSystem(conf);FileSystem srcFs = FileSystem.getLocal(conf);Path[] srcs = FileUtil.stat2Paths(srcFs.globStatus(srcPath), srcPath);for (Path src : srcs) {FileUtil.copyMerge(srcFs, src,dstFs, dst, false, conf,endline ? "\n" : null);}}
void copyMergeFromLocal(String srcf, Path dst) throws IOException {copyMergeFromLocal(srcf, dst, false);}

在HDFS文件上传时,可以设置过滤条件,使小文件自动合并。

转载于:https://www.cnblogs.com/cunchen/p/9464193.html

Hadoop HDFS copyMergeFromLocal相关推荐

  1. Hadoop HDFS文件操作的Java代码

    1.创建目录 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.ha ...

  2. bboss hadoop hdfs大数据抽取工具

    bboss大数据抽取工具功能特点如下: 实现db到hadoop hdfs数据导入功能,提供高效的分布式并行处理能力,可以采用数据库分区.按字段分区.分页方式并行批处理抽取db数据到hdfs文件系统中: ...

  3. org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block

    Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.da ...

  4. JAVA程序连接hadoop HDFS服务报无法连接。

    2019独角兽企业重金招聘Python工程师标准>>> 在虚拟机部署hadoop的HDFS系统,在centos系统中敲各种操作命令,对文件读取.上传.删除等都没什么问题.但用JAVA ...

  5. Linux下Hadoop hdfs Java API使用

    0 前言 搞了大约2天时间终于把Linux下面Java API的使用给弄清楚了.做个笔记方便以后参考.环境如下所示 Hadoop:2.5.1 Linux:Ubuntu kylin eclipse:lu ...

  6. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)

    调用文件系统(FS)Shell命令应使用 $HADOOP_HOME/bin/hadoop fs  *** 的形式!!! 所有的FS Shell命令使用URI路径作为参数. URI格式是scheme:/ ...

  7. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

  8. Hadoop HDFS分布式文件系统 常用命令汇总

    引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...

  9. 解决办法:“Cannot lock storage /data/hadoop/hdfs/name. The directory is already locked.”

    在启动hadoop的时候,会出现namenode节点启动不起来的情况. 这时用以下命令查看日志: tail -100f /usr/local/hadoop/libexec/../logs/hadoop ...

最新文章

  1. java无法实例化类型_java – 无法实例化泛型中的类型
  2. 区块链BaaS云服务(28)TOP Network 之业务链和单向状态通道(Layer-2)
  3. μC-/OS II(一) PC编译环境的搭建
  4. 严谨技术支撑vs奔放客户的100个真实写真
  5. html 文字只设计一段颜色,html – sphinx,reassuredtext:为单个字设置颜色
  6. zsh配置其显示当前文件路径
  7. Angular CLI的安装和使用
  8. C/C++打造经典推箱子小游戏
  9. php终止符,关于php中嵌入html代码时结束符“?”位置为什么这样放置?
  10. 信息学奥赛一本通C++语言——1077:统计满足条件的4位数
  11. 他们守护非洲大象犀牛,马云守护他们
  12. Web.xml详解(转)
  13. 在线文本字符串批量替换工具
  14. g6的minimap中的配置_使用GGEditor开发流程编辑应用
  15. 使用Foxmail登录阿里企业邮箱(钉钉邮箱)
  16. 考研作息时间安排表(19通信考研党)
  17. SCVMM 2012 R2---安装Hyper-V Server 2012 R2主机服务器
  18. 浅谈最近流行的三起区块链51%算力攻击
  19. EOS私链发币简要说明
  20. paper reading——《Improving Person Re-identification by Attribute and Identity Learning》

热门文章

  1. VTK与Qt整合的示例
  2. 有SELinux引起的Apache基于端口的虚拟主机启动失败
  3. ES6中的class是如何实现的?(附Babel编译的ES5代码详解)
  4. ASP.NET MVC 1.0 转化为ASP.NET MVC 2.0的方法
  5. MySQL 中的运算符
  6. ckeditor富文本编辑器的基本配置设置:
  7. MongoDB学习第一篇 --- Mac下使用HomeBrew安装MongoDB
  8. appium框架之bootstrap
  9. 程序员最喜爱的12个Android应用开发框架二(转)
  10. DELL备份恢复系统的小工具 Dell DataSafe Local Backup