我有一个1 GB
文件,我已放在HDFS
上。因此,它将被分成块并发送到集群中的不同节点。
是否有任何命令可以识别特定节点上文件块的确切大小?
感谢。
答案 0 :(得分:4)
您应该使用hdfs fsck
命令:
hdfs fsck /tmp/test.txt -files -blocks
此命令将打印有关文件所包含的所有块的信息:
/tmp/test.tar.gz 151937000 bytes, 2 block(s): OK
0. BP-739546456-192.168.20.1-1455713910789:blk_1073742021_1197 len=134217728 Live_repl=3
1. BP-739546456-192.168.20.1-1455713910789:blk_1073742022_1198 len=17719272 Live_repl=3
如您所见,此处显示(每行len
字段)块的实际使用容量。
hdfs fsck
还有许多其他有用的功能,您可以在官方Hadoop documentation page看到。
答案 1 :(得分:2)
块大小在整个HDFS中是一致的,而不是每个节点的值。可以为特定文件指定不同的块大小。
有关hdfs-site.xml
媒体资源,请参阅dfs.blocksize
。
对于新的非供应商HDFS安装,默认值约为128 MB。
答案 2 :(得分:0)
我没有评论的声誉。
查看documentation页面以设置各种属性,其中包含
dfs.blocksize
除配置更改外,您还可以使用
查看文件的实际大小hadoop fs -ls fileNameWithPath
e.g。
hadoop fs -ls /user/edureka
输出:
-rwxrwxrwx 1 edureka supergroup 391355 2014-09-30 12:29 /user/edureka/cust
答案 3 :(得分:0)
您可以尝试:
hdfs getconf -confKey dfs.blocksize