我的Hadoop集群遇到了一些问题。 我试图用它做一些基准测试来检查它的性能,看看mapreduce是否工作正常,但我得到了一些奇怪的beahviours。 事实是mapreduce正在启动并处理其映射阶段,但我从中得到了一些错误: 我首先使用teragen创建数据:
$ hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar teragen 500 random-data
然后作业开始,我在没有停止该过程的情况下遇到了一些失败:
23-02-17 12:29:27 信息客户端。RMProxy:连接到资源管理器/172.16.138.145:8032
23-02-17 12:29:28 信息TeraSort:使用 2 生成 500
23-02-17 12:29:28 信息地图减少。作业提交者: 拆分次数:2
23-02-17 12:29:28 信息地图减少。作业提交者:提交作业的令牌:job_1487846108320_0007
23-02-17 12:29:28 信息YarnClientImpl: 已提交申请application_1487846108320_0007
23-02-17 12:29:28 信息地图减少。作业:用于跟踪作业的网址:http://172.16.138.145:8088/proxy/application_1487846108320_0007/
23-02-17 12:29:28 信息地图减少。作业:正在运行 作业:job_1487846108320_0007
23-02-17 12:29:34 信息地图减少。作业:在优步模式下运行的作业job_1487846108320_0007:假
23-02-17 12:29:34 信息地图减少。作业:映射 0% 减少 0%
23-02-17 12:29:47 信息地图减少。作业: 任务 ID : attempt_1487846108320_0007_m_000001_0,状态:失败
23-02-17 12:29:48 信息地图减少。作业:任务 ID : attempt_1487846108320_0007_m_000000_0,状态 : 失败
23-02-17 12:30:02 信息地图减少。作业:地图 50% 减少 0%
23-02-17 12:30:02 信息地图减少。作业:任务 ID : attempt_1487846108320_0007_m_000001_1,状态 : 失败
23-02-17 12:30:03 信息地图减少。作业:映射 0% 减少 0%
23-02-17 12:30:03 信息地图减少。作业:任务 ID : attempt_1487846108320_0007_m_000000_1,状态 : 失败
23-02-17 12:30:15 信息地图减少。作业:任务 ID : attempt_1487846108320_0007_m_000001_2,状态 : 失败
23-02-17 12:30:16 信息地图减少。作业:任务 ID : attempt_1487846108320_0007_m_000000_2,状态 : 失败
23-02-17 12:30:30 信息地图减少。作业:映射 100% 减少 0%
23-02-17 12:30:31 信息地图减少。作业:作业job_1487846108320_0007失败,状态为失败,原因是:任务失败task_1487846108320_0007_m_000001
作业失败,因为任务失败。失败映射:1 失败缩减:0
我检查了相关数据节点中的日志,发现以下行针对每个故障重复:
2017-02-23 11:36:12,901 信息 [AsyncDispatcher 事件处理程序] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskTryImpl: attempt_1487846108320_0001_m_000001_1 TaskTry 从 RUNNING 过渡到FAIL_CONTAINER_CLEANUP
2017-02-23 11:36:12,901 信息 [AsyncDispatcher 事件处理程序] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskTryImpl: 来自attempt_1487846108320_0001_m_000001_1的诊断报告:
2017-02-23 11:36:12,902 信息 [ContainerLauncher #5] org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl:处理事件 事件类型:容器container_1487846108320_0001_01_000004
任务尝试attempt_1487846108320_0001_m_000001_1的CONTAINER_REMOTE_CLEANUP2017-02-23 11:36:12,903 信息 [ContainerLauncher #5] org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl: KILL attempt_1487846108320_0001_m_000001_1
2017-02-23 11:36:12,903 信息 [容器启动器 #5] org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy: 打开代理: Datanode3:34121
2017-02-23 11:36:12,923 信息 [AsyncDispatcher 事件处理程序] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskTryImpl: attempt_1487846108320_0001_m_000001_1 TaskTry 从FAIL_CONTAINER_CLEANUP过渡到FAIL_TASK_CLEANUP
2017-02-23 11:36:12,924 信息 [CommitterEvent Processor #2] org.apache.hadoop.mapreduce.v2.app.commit.CommitterEventHandler: 处理事件 事件类型: TASK_ABORT
2017-02-23 11:36:12,932 警告 [CommitterEvent Processor #2] org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter:无法删除 hdfs://172.16.138.145:9000/user/hdfs/random-dataSmallV7.7/_temporary/1/_temporary/attempt_1487846108320_0001_m_000001_1
2017-02-23 11:36:12,932 信息 [AsyncDispatcher 事件处理程序] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskTryImpl: attempt_1487846108320_0001_m_000001_1 TaskTry 从FAIL_TASK_CLEANUP 过渡到 FAILED
在这种情况下,作业失败,但有时我收到错误,但作业会成功。(很少) 你知道这个FAIL_CONTAINER_CLEANUP的原因是什么吗?或者这个问题的潜在原因? 这里它只使用映射器,没有请求化简器,但是当在其他情况下涉及化简器时,也会发生错误。
提前感谢您的想法。
我终于解决了。 我在某些/etc/hosts文件中有一行引用我的节点: 127.0.1.1 数据节点1
我用机器的FQDN替换了这一行: 172.16.138.147 数据节点1
这允许hadoop找到我的服务器的引用并修复此错误。
我希望这将帮助其他人。