hadoop jobclient:读取任务输出时出错

ndasle7k  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(325)

我正在我的群集中处理40gb的维基百科英文文章。问题是重复出现以下错误消息:

13/04/27 17:11:52 INFO mapred.JobClient: Task Id : attempt_201304271659_0003_m_000046_0, Status : FAILED
Too many fetch-failures
13/04/27 17:11:52 WARN mapred.JobClient: Error reading task outputhttp://ubuntu:50060/tasklog?plaintext=true&attemptid=attempt_201304271659_0003_m_000046_0&filter=stdout

当我在维基百科文章的一小部分而不是全套文章上运行相同的mapreduce程序时,它运行得很好,我得到了所有想要的结果。基于此,我想可能是记忆问题。我清除了所有的用户日志(在一篇类似的文章中指定),然后再试一次。没用。我将复制拒绝为1,并添加了几个节点。还是没用。
群集摘要如下:
配置容量:205.76 gb
使用的dfs:40.39 gb
使用的非dfs:44.66 gb
剩余dfs:120.7 gb
使用的dfs百分比:19.63%
dfs剩余百分比:58.66%
活动节点:12
死节点:0
停用的节点:0
复制不足的块数:0
每个节点都在ubuntu 12.04 lts上运行
感谢您的帮助。
编辑
jobtracker日志:http://txtup.co/gtbay
tasktracker日志:http://txtup.co/wez5l

ybzsozfc

ybzsozfc1#

我在8节点集群上遇到了与hadoop1.2.1完全相同的问题。问题出在/etc/hosts文件中。我删除了所有包含“127.0.0.1 localhost”的条目。您应该将ip地址Map到主机名,而不是“127.0.0.1 localhost”(例如,“10.15.3.35 myhost”)。注意,对于集群中的所有节点,您都应该这样做。因此,在双节点集群中,主节点的/etc/hosts应包含“10.15.3.36 masters\u hostname”,从节点的/etc/hosts应包含“10.15.3.37 slave1\u hostname”。在这些更改之后,最好重新启动集群。这里还有一些基本的hadoop疑难解答:hadoop疑难解答

uyto3xhc

uyto3xhc2#

我有一个类似的问题,并能够找到解决办法。问题在于hadoop如何处理较小的文件。在我的例子中,我有大约150个文本文件,加起来有10mb。由于文件如何被“划分”成块,系统很快就会耗尽内存。因此,要解决这个问题,你必须“填充”块,并安排你的新文件,使他们很好地分散成块。hadoop允许您“归档”小文件,以便将它们正确地分配到块中。
hadoop存档-archivename files.har-p/user/hadoop/data/user/hadoop/archive
在本例中,我从/user/hadoop/data文件夹创建了一个名为files.har的归档文件,并将其存储到/user/hadoop/archive文件夹中。完成此操作后,我使用start-balancer.sh重新平衡集群分配。
现在,当我再次运行wordcount示例时,files.har一切都很正常。
希望这有帮助。
最好的,
恩里克

cwtwac6a

cwtwac6a3#

获取失败通常是由于dns问题造成的。检查每个数据节点,确保配置的主机名和ip地址与该主机名的dns解析匹配。
您可以通过访问集群中的每个节点并运行 hostname 以及 ifconfig 并注意返回的主机名和ip地址。例如,这将返回以下内容:

namenode.foo.com 10.1.1.100
datanode1.foo.com 10.1.1.1
datanode2.foo.com 10.1.1.2
datanode3.foo.com 10.1.1.3

然后,重新访问每个节点并 nslookup 从其他节点返回的所有主机名。验证返回的ip地址是否与从中找到的ip地址匹配 ifconfig . 例如,在datanode1.foo.com上,您应该执行以下操作:

nslookup namenode.foo.com
nslookup datanode2.foo.com
nslookup datanode3.foo.com

你应该回去:
    10.1.1.100     10.1.1.2     10.1.1.3
在数据子集上运行作业时,可能没有足够的拆分来启动配置错误的数据节点上的任务。

相关问题