如何知道 Hadoop 节点上文件的确切块大小?

How to know the exact block size of a file on a Hadoop node?

我有一个 1 GB 文件放在 HDFS 上。因此,它将被分解成块并发送到集群中的不同节点。

是否有任何命令可以识别特定节点上文件块的确切大小?

谢谢。

我没有评论的声誉。

查看 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

你应该使用 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 getconf -confKey dfs.blocksize