Hadoop中文件分块大小为什么要设为64M?
雷雷518 2014-04-27 11:44:34 在云计算课程中被老师问道:Hadoop中文件分块大小为什么要设为64M?
(块大小可调整,我是知道的)
我给的回答是:
(1)为了使文件块传输时间远远大于磁盘寻址时间,这样传输文件块的时间就取决于传输时间而不是寻址时间。
(2)若块过大,也不适合,此时文件块过大,单个节点上处理数据的时间会过长,另一方面整个集群系统的任务数会介绍,使得分配到任务的节点过少,这样不能充分利用集群,达不到应有的集群利用率。
(3)若块过小,这会产生大量任务,且在map过程中产生的中间结果也会大幅增加,因此增加了datanode与namenode之间的通信开销,也不利于集群。
(4)Hadoop早期设为64M是考虑到硬件兼容性问题,现在随着硬件的提升,可以设置为更大的块大小。
我回答了这四点,但导师一直不满意,让继续思考。
已经想好久了,还有哪些原因,主要是为什么设为64,这个数字?
求高人指点,万分感谢!