-
需要调整的内容
- block大小
-
hadoop2.x默认128m,以前的版本默认64m
-
寻址时间是传输时间的0.01最为合适 ,由于平均寻址时间是10ms,所以传输时间是10/0.01为1s
-
由于磁盘的传输速率一般为100m/s,所以一个块的大小为100m/s*1s=100mb
-
- 副本数
- 容错,默认3个
- 小文件
- block大小
一个Hadoop集群中存在小文件问题是很正常的,可能的原因如下:
1. 现在我们越来越多的将Hadoop用于(准)实时计算,在做数据抽取时处理的频率可能是每小时,每天,每周等,每次可能就只生成一个不到10MB的文件。
2.数据源有大量小文件,未做处理直接拷贝到Hadoop集群。
3.MapReduce作业的配置未设置合理的reducer或者未做限制,每个reduce都会生成一个独立的文件。另外如果数据倾斜,导致大量的数据都shuffle到一个reduce,然后其他的reduce都会处理较小的数据量并输出小文件。
2.调整方式
- hdfs-site
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/dfs/data</value>
<description>datanode存放block本地目录(需要修改)</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 块大小128M (默认128M) -->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
2.小文件合并
(54条消息) 如何在hadoop中处理小文件_流一恩典的博客-CSDN博客
(54条消息) 真正让你明白Hive参数调优系列2:如何控制reduce个数与参数调优_涤生大数据的博客-CSDN博客_hive.exec.reducers.bytes.per.reducer
(54条消息) Hive中Map任务和Reduce任务数量计算原理_strongyoung88的博客-CSDN博客_hive算子实现原理mapreduce