千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学大数据 行业资讯
【热点话题】 大数据技术干货 大数据学习教程 大数据学习笔记 大数据面试题 大数据培训问答 大数据培训机构哪些好 大数据职场就业
当前位置:大数据培训  >  大数据学习教程  >  大数据开发:Hive小文件合并

大数据开发:Hive小文件合并

来源:千锋教育
发布人:wjy
时间: 2022-12-09 15:42:00 1670571720

  Hadoop生态技术体系下,负责大数据存储管理的组件,涉及到HDFS、Hive、Hbase等。Hive作为数据仓库工具,最初的存储还是落地到HDFS上,这其中就有一个关键的环节,是小文件的处理。今天的大数据开发分享,我们就主要来讲讲,Hive小文件合并。

  

Hive小文件合并 1

  本身来说,由于Hadoop的特性,对大文件的处理非常高效。大文件可以减少文件元数据信息,减轻NameNode的存储压力。相对于上层的数据表汇总程度高,底层就会面临小文件越来越多的问题。

  一、小文件带来的问题

  HDFS的文件包好数据块和元信息,其中元信息包括位置、大小、分块等信息,都保存在NameNode的内存中。每个对象大约占用150个字节,因此一千万文件及分块就会占用约3G的内存空间,一旦接近这个量级,NameNode的性能就会开始下降。

  HDFS读写小文件时也会更加耗时,因为每次都需要从NameNode获取元信息,并且对应的DataNode建立连接。对于MapReduce程序来说,小文件会增加Mapper的数量,每个Map任务只会处理很少的数据,浪费大量的调度时间。

  

Hive小文件合并 2

  二、Hive小文件产生的原因

  一方面hive数据仓库中汇总表的数据量通常比源数据少的多,而且为了提升运算速度,我们会增加Reduce的数量,Hive本身也会做类似的优化——Reducer数量等于源数据的量除以hive.exec.reducers.bytes.per.reduce所配置的量(默认1G)。Reduce数量的增加也即意味着结果文件的增加,从而产生小文件的问题。

  解决小文件的问题可以从两个方向入手:

  ①输入合并。即在map前合并小文件。

  ②输出合并。即在输出结果的时候合并小文件。

  

Hive小文件合并 3

  三、配置Map输入合并

  --每个Map最大输入大小,决定合并后的文件数

  set mapred.max.split.size=256000000;

  --一个节点上split的至少的大小,决定了多个data node上的文件是否需要合并

  set mapred.min.split.size.per.node=100000000;

  --一个交换机下split的至少的大小,决定了多个交换机上的文件是否需要合并

  set mapred.min.split.size.per.rack=100000000;

  --执行Map前进行小文件合并

  set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

  四、配置hive结果合并

  通过设置hive的配置项在执行结束后对结果文件进行合并:

  set hive.merge.mapfiles=true#在Map-only的任务结束时合并小文件

  set hive.merge.mapredfiles=true#在Map-Reduce的任务结束时合并小文件

  set hive.merge.size.per.task=256*1000*1000#合并文件的大小

  set hive.merge.smallfiles.avgsize=16000000#当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge

  hive在对结果文件进行合并时会执行一个额外的map-only脚本,mapper的数量是文件总大小除以size.per.task参数所得的值,触发合并的条件是:根据查询类型不同,相应的mapfiles/mapredfiles参数需要打开;结果文件的平均大小需要大于avgsize参数的值。

  关于大数据开发,Hive小文件合并,以上就为大家做了大致的介绍了。小文件合并的问题,这里提供了两种思路去解决,具体的实施就要结合到应用场景去选择了。

  注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区

14天品质课程免费学

10年以上业内强师带你蜕变精英

提交领取