2.数据源本身就包含有大量的小文件
3.reduce个数越多,生成的小文件也越多
1 从HIVE角度来看的话呢,小文件越多,map的个数也会越多,每一个map都会开启一个JVM虚拟机,每个虚拟机都要创建任务,执行任务,这些流程都会造成大量的资源浪费,严重影响性能
2 在HDFS中,每个小文件约占150byte,如果小文件过多则会占用大量的内存。这样namenode内存容量严重制约了集群的发展
4.1 使用Hadoop achieve把小文件进行归档
4.2 重建表,建表时减少reduce的数量
4.3 通过参数调节,设置map/reduce的数量
4.3.1设置map输入合并小文件的相关参数:
4.3.2 设置map输出和reduce输出进行合并的相关参数:
achieveachieve [简明英汉词典]
[E5tFi:v]
vt.完成, 达到
archive [简明英汉词典]
[`B:kaIv]
vt.存档
n.档案文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)