1、hdfs数据块
HDFS上的文件被划分为块大小的多个分块作为独立的存储单元。HDFS中小于一个块大小的文件不会占据整个块的空间(当一个1MB的文件存储在一个128MB的块中时,文件只使用1MB的磁盘空间,而不是128MB)
在hdfs里,datdanode上默认的数据块大小为64M(或128M或256M),块大小调整“不能远少于64MB,也不能远大于64M”。如果块过小,那需要读取的数据块数量就会增多,从而间接增加底层硬盘的寻道时间;块过大也会有很多问题,例如增加MapReduce计算时间、Map崩溃问题等一系列问题,
2、hdfs块大小调整
(1)上传hello.txt文件
hadoop fs -put /home/hadoop/file/hello.txt /hdfsapi/test/ |
(2)查看上传的文件的块大小
hadoop fs -stat "%o" /hdfsapi/test/hello.txt |
显示结果:67108864
(3)修改hdfs-site.xml配置文件,增加全局参数dfs.block.size
<property> <name>dfs.block.size</name> <value>512000</value> </property> |
注意:blockSize必须是io.bytes.per.checksum的整数倍,否则会报错
(4)再次上传上传hello.txt文件
hadoop fs -put /home/hadoop/file/hello.txt /hdfsapi/test/hello1.txt |
(5)查看hello.txt文件的块大小
hadoop fs -stat "%o" /hdfsapi/test/hello1.txt |
显示结果:512000