总算知道HDFS文件块为什么是128M了

HDFS中对大文件存储在物理上是分块存储。就是把一个大文件切分成一块一块的文件,查找文件的时候,通过文件块的起始地址,找到这个文件。

HDFS中文件块的大小为128M。那么为什么要设置成128M而不是别的大小呢?

总算知道HDFS文件块为什么是128M了

原因:

  1. 读取一个文件有两个过程,寻址过程(寻找文件的物理地址)和文件传输过程。
  2. 根据研究表明,寻址时间为传输时间的1%最佳
  3. 而hdfs的寻址平均时间为10ms,所以传输时间最佳=10ms/1%=1000ms=1s
  4. 又因为目前机械硬盘的传输速率普遍为100MB/s,所以文件块的大小=100MB/s*1s=100MB
  5. 又因为文件块的大小必须为8的倍数,所以取100MB的近似值128MB

思考:如果文件块设置过大,会怎样?

如果文件块太大,那么文件的传输时间就会变长,那么程序在处理这块数据时,就会非常慢。

思考:如果文件块设置过小,会怎样?

如果文件块太小,那么寻址次数就会增多,对于一个大的文件,程序寻址时间占的比重就太大,过多的寻找地址。

总结:HDFS的大小设置主要取决于磁盘的传输速率。(如果使用固态硬盘,文件块的大小完全可以设置为256MB)

结尾:如果有什么疑问,可以在下方评论,我会一一作答


分享到:


相關文章: