Hadoop fs查找块大小?

时间:2011-12-07 06:17:53

标签: hadoop hdfs

在Hadoop fs中如何查找特定文件的块大小?

我主要对命令行感兴趣,例如:

hadoop fs ... hdfs://fs1.data/...

但它看起来并不存在。有Java解决方案吗?

5 个答案:

答案 0 :(得分:32)

其他答案中的fsck命令列出了块,并允许您查看块的数量。但是,要查看实际的块大小(以字节为单位),没有额外的错误:

hadoop fs -stat %o /filename

默认块大小为:

hdfs getconf -confKey dfs.blocksize

有关单位的详情

hadoop fs -stat命令中未记录块大小的单位,但是,查看source linedocs for the method it calls,我们可以看到它使用字节,无法报告块大小大约9艾字节。

hdfs getconf命令的单位可能不是字节。它返回配置文件中dfs.blocksize使用的任何字符串。 (这可以在final functionits indirect caller

的来源中看到

答案 1 :(得分:13)

似乎hadoop fs没有选项可以做到这一点。

但是hadoop fsck可以。

你可以试试这个

$HADOOP_HOME/bin/hadoop fsck /path/to/file -files -blocks

答案 2 :(得分:1)

我认为应该可以:

hadoop fsck /filename -blocks

但是连接被拒绝

答案 3 :(得分:1)

尝试在下面编码

path=hdfs://a/b/c

size=`hdfs dfs -count ${path} | awk '{print $3}'`
echo $size

答案 4 :(得分:0)

用于显示我使用的HDFS中现有文件的实际块大小:

[pety@master1 ~]$ hdfs dfs -stat %o /tmp/testfile_64
67108864