HDFS小文件弊端

HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。

HDFS小文件解决方案

小文件的优化有以下几种方式:

(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。

  • Hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档工具,它能够将多个小文件打包成一个HAR文件,这样就减少了NameNode的内存使用。

(2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。

  • Sequence File由一系列的二进制key/value组成,如果key为文件名,value为文件内容,则可以将大批小文件合并成一个大文件。

(3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。

  • CombineFileInputFormat是一种新的InputFormat,用于将多个文件合并成一个单独的split,另外,它会考虑数据的存储位置。

(4)开启JVM重用

  • 对于大量小文件Job,可以开启JVM重用会减少45%运行时间。
    JVM重用原理:一个Map运行在一个JVM上,开启重用的话,该Map在JVM上运行完毕后,JVM继续运行其他Map。
  • 具体设置: mapreduce.job.jvm.numtasks值在10-20之间。

HDFS小文件优化方法相关推荐

  1. Hadoop之Hadoop企业优化(HDFS小文件优化)

    Hadoop之Hadoop企业优化 目录 MapReduce 跑的慢的原因 MapReduce优化方法之数据输入 MapReduce优化方法之Map阶段 MapReduce优化方法之Reduce阶段 ...

  2. HDFS小文件治理总结

    目录 背景 第一部分 回本溯源 第二部分 HDFS大量小文件的危害 第三部分 小文件治理方案总结 第四部分 总结 参考文献及资料 背景 企业级Hadoop大数据平台在实际使用过程中,可能大部分会遭遇小 ...

  3. HDFS小文件问题及解决方案

    1.  概述 小文件是指文件size小于HDFS上block大小的文件.这样的文件会给hadoop的扩展性和性能带来严重问题.首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储 ...

  4. HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS)

    2019独角兽企业重金招聘Python工程师标准>>> HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) 博客分类: 数据库 hbase 一. ...

  5. Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法、Presto的介绍与使用场景

    Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法.Presto的介绍与使用场景 Presto的安装与使用 目录 Flink写出多个parquet小文件处理方法 Presto ...

  6. hive小文件处理方法

    方法一 hive方法处理 set hive.merge.mapfiles=true; -- map only job 结束是合并小文件 set hive.merge.mapredfiles=true; ...

  7. HDFS小文件问题解决方案

    一 如果小文件过多带来的影响 1过多的小文件,意味着需要保存的元数据就更多,那么也就需要更多的NameNode内存了,从而给NameNode带来性能问题 2读取小文件数据的时候,带来集群资源更多开销. ...

  8. HDFS小文件的危害

    一.black块 举例: black块官方设置的是64m,现在多数用的是128m 举例: 一个文件130M % 128M=1-2m 结果是1个块128m,1个块2m 一碗水130ml 一个瓶子规格容量 ...

  9. spark 实现HDFS小文件合并

    一.首先使用sparksql读取需要合并的数据.当然有两种情况, 一种是读取全部数据,即需要合并所有小文件. 第二种是合并部分数据,比如只查询某一天的数据,只合并某一个天分区下的小文件. val df ...

最新文章

  1. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务
  2. CentOS通过日志反查入侵(转)
  3. 北斗导航 | 从北斗二号到北斗三号
  4. Linux下V4L2捕捉画面+H264压缩视频+帧缓冲显示视频————H264压缩视频
  5. ubuntu建立向windows一样的快捷方式
  6. 用calloc()函数分配内存
  7. 4款bt search
  8. java流错误的是什么_Java 流异常的标准处理 | 学步园
  9. android iso系统下载 百度云,Windows 7 SP1官方原版ISO系统镜像所有版本下载集合
  10. 猎豹网校java版算法_猎豹网校JAVA语言数据结构与算法视频教程 Java语言
  11. 协同过滤推荐算法java_基于用户的协同过滤推荐算法 实现原理及实现代码
  12. base-64 字符数组的无效长度
  13. Java入门第116课——向List中插入和删除元素
  14. MAC地址(广播、组播、单播、全球、本地)
  15. BAAI 2020 北京智源大会 | Yolanda Gil | Thoughtful Artificial Intelligence
  16. 【51单片机】矩阵按键实现数码管显示
  17. 威客---猪八戒http://www.zhubajie.com/
  18. 【Java分享客栈】我有一个朋友,和前端工程师联调接口被狠狠鄙视了一番。
  19. struts使用下拉列表框
  20. 百度分享不支持https的最简单解决方案

热门文章

  1. JavaScript实现在线MD5、SHA、AES、Rabit 、RC4、TripleDES Ripemd160 加密解密工具-toolfk程序员在线工具网...
  2. transfer function
  3. 2016/11/18
  4. Swift中关于可选类型(?)与强制解析(!)的特性
  5. Facebook大牛、HipHop作者赵海平加入阿里巴巴
  6. [转]理解“Future”
  7. 重庆2021级春招高考成绩查询,2021重庆高考成绩查询入口
  8. 数字万用表测量二极管、三极管
  9. 内核通信错误处理方法
  10. 我都惊了这么多年pytorch还可以这么用