为什么hadoop的块要定长,如果不定长,系统要做什么额外的工作,请大牛帮助解答一下,最好可以从源码分析。

解决方案 »

  1.   

    弄个字段记录大小不行吗?
    定长Block大部分 文件系统的设计思路如果是不定长block,就需要额外对每个Block增加一个索引 Block size 索引 BZindex不是你说的用一个字段记录那么简单当我们流读一个文件的Block时,BZindex的扫描会带来额外的开销,并且提高了系统复杂度不定长Block会导致文件系统的内存cache的设计复杂度提高不定长Block的好处是可以增加存储利用率
    但效率极低~空间换时间,还是时间换空间,这个LZ自己拿捏把至少目前开来空间换时间在大数据领域是主流