gpt4 book ai didi

hadoop - 一个映射器有时无法启动

转载 作者:行者123 更新时间:2023-12-02 21:47:29 25 4
gpt4 key购买 nike

我正在创建一个 Hadoop MapReduce 作业,并且我在一个 HBase 表上使用两次扫描来提供我的映射器。 HBase 表有 10 个区域。我创建了两个扫描仪,在它们上调用 setAttribute(Scan.SCAN_ATTRIBUTES_TABLE_NAME, tableName) ,然后我这样做:

    job.setPartitionerClass(NaturalKeyPartitioner.class);
job.setGroupingComparatorClass(NaturalKeyGroupingComparator.class);
job.setSortComparatorClass(CompositeKeyComparator.class);
TableMapReduceUtil.initTableMapperJob(scans, FaultyRegisterReadMapper.class, MeterTimeKey.class, ReadValueTime.class, job);

出于某种原因,大多数时候只创建了两个映射器。我希望有更多的映射器,但这并不是什么大问题。

真正糟糕的部分是有时它创建了三个映射器,当它创建时,前两个映射器完成得很快,但第三个映射器甚至在五分钟内都没有启动。真正困扰我的是这个需要很长时间才能启动的映射器。 :)

这是在一个有大约 60 个节点的集群上,它并不忙。

我怀疑映射器的数量可能是由它在表中找到的数据量驱动的,但我对此并不肯定。

主要问题:任何想法为什么一个映射器需要这么长时间才能启动?

最佳答案

除了节点的硬件资源,我还会检查网络流量。您可能正遭受网络饱和(接口(interface)错误、帧错误等)的困扰。

之后,我将确保以下事项:

  • RegionServer 热点:不均匀的 key-space 分布会导致对单个区域的大量请求,轰炸 RegionServer 进程,导致响应时间变慢。你有由时间序列数据组成的键吗?
  • 非本地数据区域:也许您的工作是请求 DataNode 本地以外的数据(RegionServers 在 DataNodes 上运行),从而迫使 HDFS 通过网络从其他服务器请求数据 block (也涉及网络流量)。
  • 关于hadoop - 一个映射器有时无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914522/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com