HDFS文件块大小设置原理
一、HDFS文件块大小
HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x和Hadoop3.x版本中是128M,老版本Hadoop1.x中是64M。
二、HDFS文件块大小设置原理
HDFS文件块大小设置主要取决于磁盘传输速率,目前通过Namenode对HDFS元数据进行寻址的时间约为10ms,即查找到目标block的时间为10ms。
寻址时间为传输时间的1%时,则为最佳状态
因此,传输时间为10ms/0.01=1000ms=1s
目前磁盘的传输速率普遍为100MB/s
因此,block大小为1s*100MB/s=100MB
因为电脑底层数据采用二进制存储,所以目前的block块官方大小设置为128MB。
总结:HDFS文件块大小设置主要取决于磁盘传输速率,生产中采用高速磁盘作为存储介质的可以考虑在HDFS的配置文件中设置dfs.blocksize参数调整block块大小。
三、块大小要设置合理
HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;
如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。