【发布时间】:2016-05-29 06:18:47
【问题描述】:
我有一个1 GB 文件,我已将它放在HDFS 上。因此,它将被分成块并发送到集群中的不同节点。
是否有任何命令可以识别特定节点上文件块的确切大小?
谢谢。
【问题讨论】:
我有一个1 GB 文件,我已将它放在HDFS 上。因此,它将被分成块并发送到集群中的不同节点。
是否有任何命令可以识别特定节点上文件块的确切大小?
谢谢。
【问题讨论】:
你应该使用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 看到。
【讨论】:
hdfs dfsadmin -report 命令。如果您发现并非所有数据节点都已启动,请尝试检查该数据节点的日志。
你可以试试:
hdfs getconf -confKey dfs.blocksize
【讨论】:
我没有评论的声誉。
查看documentation页面设置各种属性,涵盖了
dfs.blocksize
除了配置改变,你可以查看文件的实际大小
hadoop fs -ls fileNameWithPath
例如
hadoop fs -ls /user/edureka
输出:
-rwxrwxrwx 1 edureka supergroup 391355 2014-09-30 12:29 /user/edureka/cust
【讨论】: