Hadoop:为什么集群默认块大小是128MB

今天在学习MapReduce中FileInuptFormat对文件切片的源码时,发现一个问题在本地windows运行时默认Block大小是32MB在集群上是128MB,突然联想到在HDFS中的块大小也是128MB
block块大小的设置:
HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在Hadoop2.x版本中是128M,老版本中是64M。

为什么是128MB:
block块的大小主要取决于磁盘传输速率.
一般hdfs的寻址时间为10ms左右.
当寻址时间为传输时间的1%时为最佳状态,因此传输时间大概在1s左右.
机械硬盘文件顺序读写的速度为100MB/s,普通固态为500MB/s,pcie固态的速度可以达到2000MB/s,因此块的大小可以分别设为128MB,512MB,2048MB.

重申一遍:
block块的大小主要取决于磁盘传输速率.

你可能感兴趣的:(java,hadoop,hdfs,big,data)