【发布时间】:2011-09-16 08:31:54
【问题描述】:
如果一个数据块被复制,它将被复制到哪个数据节点? 是否有任何工具可以显示复制块的位置?
【问题讨论】:
标签: hadoop replication
如果一个数据块被复制,它将被复制到哪个数据节点? 是否有任何工具可以显示复制块的位置?
【问题讨论】:
标签: hadoop replication
【讨论】:
CERN 开源了一个不错的工具 - 请参阅博客文章 https://db-blog.web.cern.ch/blog/daniel-lanza-garcia/2016-04-tool-visualise-block-distribution-hadoop-hdfs-cluster
它不仅会显示跨节点的块位置,还会显示这些节点上的磁盘(表格视图):
这个项目的代码可以在这里找到:https://github.com/cerndb/hdfs-metadata
在内部,这个 CERN 的工具使用对 Hadoop 的 API 调用 - 参见例如, https://github.com/cerndb/hdfs-metadata/blob/master/src/main/java/ch/cern/db/hdfs/DistributedFileSystemMetadata.java#L168
因此,如果您计划在多个文件上运行它然后查看综合结果,那么它比使用 cli 工具要快得多。
hdfs fsck / -files -blocks -locations 允许您一次只能查看一个文件。
我们使用这个工具来查看一个巨大的 parquet 表是否在节点和磁盘之间很好地分布,以检查是否由于数据分布缺陷而发生数据处理偏差。
【讨论】: