HDFS 从相同节点统计信息阅读HadoopMap任务

ygya80vv  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(176)

我目前正在使用Hadoop。我想知道是否可以获得有关给定作业的map任务是从自己的节点还是从其他节点阅读数据的信息。我知道HDFS分布在所有节点中,但是否有任何计数器/指标可以说明,对于给定作业和给定map任务,从运行amp任务的同一节点读取了多少数据。以及通过网络读取了多少数据。

pbpqsu0x

pbpqsu0x1#

Hadoop没有计数器来告诉您本地读取了多少数据,以及通过网络读取了多少数据。
您唯一能做的就是合并不同的标准计数器,并在此基础上获得本地和网络读取数据的近似值。

  • 数据本地Map:作业中使用本地数据(计算机的本地数据)的map任务数。
  • 机架本地Map:在与其输入数据相同的机架中的节点上运行的Map任务数。
  • 其他本地Map:在与其输入数据所在机架不同的机架中的节点上运行的任务数。
  • Map输入字节:告诉您所有Map任务(整个作业)总共消耗了多少数据
  • (您应该检查您的Hadoop分发版的计数器的确切名称)

考虑到EACHMap处理ONE个输入拆分,并且默认输入拆分大致相等,您可以使用以下公式计算本地处理的数据总量:

DATA_LOCAL_MAPS * MAP_INPUT_BYTES/(DATA_LOCAL_MAPS + RACK_LOCAL_MAPS +
                                             OTHER_LOCAL_MAPS)

乘法的第二项给出了每个Map任务的输入字节数

相关问题