1

我正在尝试在两个节点集群上运行 mapreduce 作业。我收到以下错误 Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; 救助。

我阅读了一些帖子说这是由于 /etc/hosts 中的问题

我在 master 中的 /etc/hosts 看起来像这样。(另外,master 本身就是一个 slave):
127.0.0.1 localhost
127.0.1.1 xyz
10.140.169.41 master
10.140.169.38 slave

/etc/hosts 在奴隶看起来像这样

127.0.0.1 本地主机
127.0.1.1 abc
10.140.169.41 主
10.140.169.38 从

我已经关闭了防火墙

任何帮助将不胜感激

4

3 回答 3

1

Shuffle 是中间数据从 mapper 传输到 reducer 的阶段。您没有提到您为代码运行设置了哪些 Map Reduce 属性,但我可以建议您尝试设置以下属性:

<property>
    <name>mapreduce.reduce.shuffle.input.buffer.percent</name>
    <value>0.20</value>
</property>
<property>
    <name>mapreduce.reduce.shuffle.parallelcopies</name>
    <value>4</value>
</property>

如果您需要有关我们如何计算缓冲区输入百分比的描述,请查看以下内容:https ://issues.apache.org/jira/browse/MAPREDUCE-6447/

谢谢。

于 2017-12-06T22:02:12.970 回答
0

您的主机实际上被命名为“主”和“从”吗?确保文件中的条目/etc/hosts与主机名匹配,即hostname.

于 2013-05-26T13:36:13.083 回答
0

正如Neha在 shuffle 阶段提到的,数据需要在 hadoop 集群内传输。因此,您应该检查集群中的数据节点、名称节点和辅助节点的日志输出,这些节点可能会导致传输此数据出现问题。

例如,由于我的 core-site.yml 文件中的配置错误,我遇到了一个 kerberos 原则未正确映射到 hdfs 系统用户的问题。

在另一个例子中,我收到了错误

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
于 2019-12-14T22:37:14.640 回答