当前位置:   article > 正文

hive合并小文件_hive小文件合并

hive小文件合并

小文件的危害

1.小文件过多,占用HDFS中namenode的内存

2.小文件过多,启动过多的maptask,maptask的启动和调度消耗很多内存和时间,启动时间比job执行时间还长

针对问题2的解决方案

1.输入合并小文件,减小map数

方式1:通过设置参数来合并小文件

set mapred.max.split.size=256000000; 每个MAP最大输入大小

set mapred.min.split.size.per.node=100 000 000; 一个节点上split的至少的大小,决定了多个datanode上的文件是否需要合并

set mapred.min.split.size.per.rack=100 000 000;一个交换机下split的至少的大小,决定了多个交换机上的文件是否需要合并

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;执行map前进行小文件合并

方式2:通过sql来合并小文件

新建一个中间表,通过insert overwrite table tmp_xxx select * from xxx;来减少小文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/831739
推荐阅读
相关标签
  

闽ICP备14008679号