gpt4 book ai didi

java - Reduce 任务被 Hadoop 多节点 (10x) 集群中的太多获取失败消息停止

转载 作者:可可西里 更新时间:2023-11-01 16:11:11 24 4
gpt4 key购买 nike

我将 Hadoop 1.0.3 用于一个 10 桌面集群系统,每个系统都有 Ubuntu 12.04LTS 32 位操作系统。 JDK 是 7 u 75。每台机器有 2 GB RAM 和 core 2-duo 处理器。

对于一个研究项目,我需要运行一个类似于“字数统计”的 hadoop 作业。我需要对大量数据集运行此操作,例如至少 1 GB 的大小。

我正在尝试使用 hadoop 的示例 jar hadoop-examples-1.0.3.jar 来计算输入数据集的单词数。不幸的是,我无法运行任何输入数据超过 5-6 MB 的实验。

对于输入,我使用来自 https://www.gutenberg.org 的纯文本共振峰故事书.我还使用了来自 https://www.ietf.org 的一些 rfc。 .所有输入均为.txt格式英文书写。

我的系统可以为单个 .txt 文档提供正确的输出。但是,当它有超过 1 个 .txt 文件时,它开始不断地给出错误:

INFO mapred.JobClient: Task Id :      attempt_XXXX, Status : FAILED
Too many fetch-failures

当我使用单节点集群时,数据集也能正常工作。我从以前的 stackoverflow 得到了一些解决方案帖子例如this onethis one还有更多。但这些都不适合我的情况。根据他们的建议,我更新了/usr/local/hadoop/conf/mapred-site.xml 文件如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
<property>
<name>mapred.task.timeout</name>
<value>1800000</value>
</property>
<property>
<name>mapred.reduce.slowstart.completed.maps</name>
<value>0.9</value>
</property>
<property>
<name>tasktracker.http.threads</name>
<value>90</value>
</property>
<property>
<name>mapred.reduce.parallel.copies</name>
<value>10</value>
</property>
<property>
<name>mapred.map.tasks</name>
<value>100</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>7</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/user/localdir</value>
</property>

</configuration>

在这个文件中,我从 michael-noll's blog 中收集了属性值:“mapred.local.dir”、“mapred.map.tasks”、“mapred.reduce.tasks”。 .我也设置了,

export HADOOP_HEAPSIZE=4000

来自 conf/hadoop-env.sh 文件。

由于我已经将所有10台机器的环境都设置为hadoop-1.0.3,所以如果有人能在不更改hadoop版本的情况下给我解决方案,那将对我更有帮助。

另外我想提一下,我是 hadoop 的新手。我发现了很多关于 hadoop 的文章,但我可以将任何文章修改为该主题的标准。如果有人知道关于 hadoop 的任何信息丰富且真实的文章,请随时与我分享。

提前谢谢大家。

最佳答案

我的问题现在已经解决了。实际上问题出在我的网络设置中。不幸的是,由于我的网络设置错误,Hadoop系统在reduce时无法定位到正确的机器。

正确的网络设置应该是:

在/etc/hosts 文件中应包含以下信息:

localhost 127.0.0.1

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

master 192.168.x.x
slave1 192.168.x.y
....

在文件/etc/hostname 中

我们应该只提及写在主机文件中的主机名。例如,在 master 机器中,我们应该在主机名文件中只写一个单词。它是:

master

对于机器slave1,文件应该包含:

slave1

关于java - Reduce 任务被 Hadoop 多节点 (10x) 集群中的太多获取失败消息停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627492/

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