HDFS块大小计算
hdfs中的文件在物理上分块存储的,块大小可以通过配置参数 dfs.blocksize(hdfs-site.xml修改)
block默认大小在2.x/3.x是128M,在1.x是64M
假如集群中有n个文件块,如果寻址的时间约为10ms,既查找到目标block的时间为10ms,寻址时间为传输时间的1%,则为最佳状态。
因此传输时间为10ms/0.01=1000ms=1s,目前磁盘的传输速率为100MB/s.
文件块大小为 磁盘的传输速率x传输时间。文件块大小=1s*100MB/s=100M
为什么文件块的大小不能设置的太大或者太小?
- 文件块设置的太小,会增加寻址时间,就会一直在找块的起始位置。
- 如果设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需时间,导致在处理块时,会非常慢。
HDFS块大小的设置主要取决于磁盘的传输速率。