1、NameNode中的Block大小如何设置?设置多大合适?怎么计算?
1、配置参数dfs.blocksize
在Hadoop2.x/3.x版本中默认大小是128M,1.x版本中是64M。
默认配置在hdfs-default.xml
中,我们可以在hdfs-site.xml
中自定义配置
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>
The default block size for new files, in bytes.
You can use the following suffix (case insensitive):
k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
Or provide complete size in bytes (such as 134217728 for 128 MB).
</description>
</property>
2、Block大小计算逻辑
这个Block
大小的确定,主要受寻址时间、传输时间、磁盘性能
3个因素影响。
一般地
寻址时间为传输时间的1%时,则为最佳状态。
假设,寻址时间是10ms
,则最佳传输时间是10ms/0.01=1000ms=1s
于是,根据这个传输时间及磁盘的读写速率,计算出Block
的大小设置
一般性配置
机械硬盘,我们就设置为128MB
固态硬盘,我们就设置为256MB
3、设置太小或太大会有什么弊端?
设置太小
那么,HDFS
里面会有很多的小文件,这样,会增加寻址时间,影响性能。
设置太大
会降低HDFS
的并发能力,影响性能。