一、HDFS 为何要讲文件分成 block 块存储?
减少底层操作系统的 IO 读取时的寻址时间方便更高效的流式读取,提高吞吐量
二、HDFS block 块的默认大小时多少?
dfs.blocksize 为 Hadoop 定义 block 块大小的设置参数,在 hdfs-site.xml 中版本不一样,默认值不同。Hadoop2.2.x 及以后版本均为 128M
三、HDFS block 块的大小是否可以更改?
可以修改。参数修改对以前的文件不起作用,对以后的文件起作用。也可以针对上传文件临时修改,指定-D dfs.blocksize即可。
四、一个 block 块文件是否可以存储多个文件数据?
一个 block 块文件不会跨文件存储。一个 block 块文件最多只会存储一个文件对应的数据
五、如果一个文件的大小,小于一个 blocksize,那么它实际占用多大空间?
实际文件多大则占多大空间,但是占了一个 block 块的元数据空间大小(在namenode)
实际文件多大则占多大空间,但是占了一个 block 块的元数据空间大小(在namenode),GB、TB甚至PB等。
六、HDFS block 越大越好?还是越小越好?
越大则分块越少,则 NameNode 压力将减小,但并行的 IO 和处理能力降低
越小则分块越多,则 NameNode 处理压力越大,但因为寻址时间太久,不利于提高吞吐量
适中即可,一般采用官方的 128M 即可