java - hadoop - HDFS 文件分发

标签 java hadoop hdfs

我刚开始玩 Hadoop,我有以下疑问: 我们很清楚 Namenode 有关于输入 block 的“元数据”信息。现在我的问题是:

  1. 如何查看或查询元数据?
  2. 我如何查看 - 我的输入文件是如何被阻止和分发的?
  3. 如何确保我的输入文件在 HDFS 中被阻止和分发?

PS:我已经提到了以下网站:

http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/

谢谢!

最佳答案

  1. 如何查看或查询元数据?

    您可以借助Offline Image Viewer 来做到这一点。它是一种将 fsimage 文件的内容转储为人类可读格式的工具,以便允许离线分析和检查 Hadoop 集群的命名空间。

    用法:

    bin/hdfs oiv -i fsimage -o fsimage.txt

    您可以在这个 here 上找到更多信息.

  2. 我如何查看 - 我的输入文件是如何被阻止和分发的?

    最简单的方法是将您的网络浏览器指向 HDFS webUI,即 namemnode_machine:50070。然后浏览到有问题的文件并单击以将其打开。向下滚动,您可以看到该文件每个 block 的位置。

    或者,您可以使用 FileSystem API 提供的 getFileBlockLocations(FileStatus file, long start, long len)。它返回一个数组,其中包含主机名、偏移量和给定文件各部分的大小。

  3. 如何确保我的输入文件在 HDFS 中被阻止和分发?

    您可以使用 fsck 来做到这一点。它会向您显示与特定文件相关的所有必要信息,例如总 block 数、最少复制 block 数、复制不足 block 数等。

关于java - hadoop - HDFS 文件分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064768/

相关文章:

java - 使用远程源自动完成

scala - 连接 hive 和spark时发生异常HDFS上的根暂存目录:/tmp/hive应该是可写的。当前权限是:rwxrwxr-x

hadoop - 指定并发的Hadoop作业中的映射槽数

python - pyspark 方法只获取更新和新记录

java - 表达式树类中的递归evaluate()

java - 如何为带有附件的 Java MimeMessage 对象创建测试数据?

hadoop - 从Beefline转储HDFS目录中的数据

hadoop - Hive - 移动 HDFS 上的现有仓库位置

java - 如何使用存储为毫秒 Postgres 的日期的月份进行分组

linux - Hadoop NFS挂载问题