【发布时间】:2014-12-01 21:17:12
【问题描述】:
我正在尝试使用 Hadoop 2.5.2 在 Mesos 上运行一个简单的 WordCount 示例。我已经成功设置了 HDFS(实际上在这之后设置了一个 YARN,它工作正常)。 Mesos master 正在运行并且有 4 个 slave 连接到它。 Mesos 的 Hadoop 库是 0.0.8。
Hadoop 2.5.2 的配置是 (mapred-site.xml):
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>*.*.*.*:9001</value>
</property>
<property>
<name>mapred.job.tracker.http.address</name>
<value>*.*.*.*:50030</value>
</property>
<property>
<name>mapred.jobtracker.taskScheduler</name>
<value>org.apache.hadoop.mapred.MesosScheduler</value>
</property>
<property>
<name>mapred.mesos.taskScheduler</name>
<value>org.apache.hadoop.mapred.JobQueueTaskScheduler</value>
</property>
<property>
<name>mapred.mesos.master</name>
<value>*.*.*.*:5050</value>
</property>
<property>
<name>mapred.mesos.executor.uri</name>
<value>hdfs://*.*.*.*:9000/hadoop-2.5.0-cdh5.2.0.tgz</value>
</property>
</configuration>
我从我的所有奴隶那里得到了以下日志(示例):
dbpc42: I1202 00:03:12.066195 11232 launcher.cpp:137] 分叉子 容器 'c10c2d2b-bf4b-469b-97a2-60c9720773b4' 的 pid 为 '18714'
dbpc42: I1202 00:03:12.068272 11232 containerizer.cpp:571] 获取 容器 'c10c2d2b-bf4b-469b-97a2-60c9720773b4' 的 URI 使用 命令'/opt/mesos-0.21.0/build/src/mesos-fetcher'
dbpc42: I1202 00:03:12.140894 11226 containerizer.cpp:946] 销毁容器 'c10c2d2b-bf4b-469b-97a2-60c9720773b4'
dbpc42: E1202 00:03:12.141315 11229 slave.cpp:2787] 容器'c10c2d2b-bf4b-469b-97a2-60c9720773b4' 对于框架的执行者'executor_Task_Tracker_93' “20141201-225046-698725789-5050-19765-0003”启动失败:未能启动 获取容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的 URI:退出 状态 256
dbpc42: I1202 00:03:12.242033 11231 containerizer.cpp:1117] 容器'c10c2d2b-bf4b-469b-97a2-60c9720773b4'的执行器有 退出 dbpc42: I1202 00:03:12.243896 11225 slave.cpp:2898] 执行器 'executor_Task_Tracker_93' 框架 20141201-225046-698725789-5050-19765-0003 以状态 1 退出
作业跟踪器运行良好,使用 hadoop jar 命令时作业卡在 map 0% reduce 0%。在 mesos 集群信息中,TASKS_LOST 计数器一直上升,直到我终止工作。 Mesos 和 JobTracker 以 root 身份运行,作业以用户 hdfs 身份运行。
这个 URI 问题到底是怎么回事?
感谢您的帮助或提示!
(如果需要,我会提供更多信息。)
更新
在运行主机的同一台 PC 上启动从机将使任务进入暂存状态。 5,每次。
mapred-mesos.executor.uri 已从 IP 更改为 dbpc41(主 PC)。
<property>
<name>mapred.mesos.executor.uri</name>
<value>hdfs://dbpc41:9000/hadoop-2.5.0-cdh5.2.0.tgz</value>
</property
由于(可能)无法获取执行程序 URI,其他 4 个从属服务器仍在丢失任务。
这些是来自第 5 个从属服务器的日志,该服务器运行在主服务器所在的同一台 PC 上:
I1202 16:17:57.434345 1405 containerizer.cpp:571] 为 容器 '5f33123b-00eb-4e05-9dcc-30f16f5eee44' 使用命令 '/opt/mesos-0.21.0/build/src/mesos-fetcher' I1202 16:18:08.620708 1412 slave.cpp:2840]监控执行器'executor_Task_Tracker_445' 容器中的框架“20141201-225046-698725789-5050-19765-0012” '5f33123b-00eb-4e05-9dcc-30f16f5eee44' I1202 16:18:09.022902 1407 containerizer.cpp:1117] 容器执行器 '5f33123b-00eb-4e05-9dcc-30f16f5eee44' 已退出 I1202 16:18:09.022964 1407 containerizer.cpp:946] 销毁容器 '5f33123b-00eb-4e05-9dcc-30f16f5eee44' W1202 16:18:11.369912 1407 containerizer.cpp:888] 跳过容器的资源统计 5f33123b-00eb-4e05-9dcc-30f16f5eee44 因为:无法使用:否 进程发现于 11093 W1202 16:18:11.369971 1407 containerizer.cpp:888] 跳过容器的资源统计 5f33123b-00eb-4e05-9dcc-30f16f5eee44 因为:无法使用:否 在 11093 I1202 16:18:11.399648 1412 slave.cpp:2898 找到的进程] 框架的执行者'executor_Task_Tracker_445' 20141201-225046-698725789-5050-19765-0012 以状态 1 I1202 退出 16:18:11.401949 1412 slave.cpp:2215]处理状态更新TASK_LOST (UUID:959709c2-5546-41fd-9af3-09f024bb6354)任务Task_Tracker_445 框架 20141201-225046-698725789-5050-19765-0012 来自 @0.0.0.0:0 W1202 16:18:11.402245 1409 containerizer.cpp:852] 忽略更新 未知容器:5f33123b-00eb-4e05-9dcc-30f16f5eee44 I1202 16:18:11.403017 1410 status_update_manager.cpp:317] 收到状态 更新任务的 TASK_LOST (UUID: 959709c2-5546-41fd-9af3-09f024bb6354) 框架的Task_Tracker_445 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.403437 1406 slave.cpp:2458] 转发更新 TASK_LOST (UUID: 959709c2-5546-41fd-9af3-09f024bb6354) 用于任务 Task_Tracker_445 的 框架 20141201-225046-698725789-5050-19765-0012 至 大师@157.181.165.41:5050 I1202 16:18:11.448752 1409 status_update_manager.cpp:389] 收到状态更新确认 (UUID:959709c2-5546-41fd-9af3-09f024bb6354)任务Task_Tracker_445 框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.449354 1408 slave.cpp:3007] 清理执行器 'executor_Task_Tracker_445' 框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.449707 1405 gc.cpp:56] 调度 '/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-S4/frameworks/20141201-225046-698725789-5050-19765-0012/executors/executor_Task_Tracker_445/runs/5f33123b-00eb-4e05-9dcc-30f16f5eee44' 对于未来的 gc 6.99999479755852 天 I1202 16:18:11.450034 1409 gc.cpp:56] 调度 '/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-S4/frameworks/20141201-225046-698725789-5050-19765-0012/executors/executor_Task_Tracker_445' for gc 6.9999947929037days in the future I1202 16:18: 11.450147 1408 slave.cpp:3084] 清理框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.450213 1406 status_update_manager.cpp:279] 关闭状态更新流 框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.450381 1412 gc.cpp:56] 调度 '/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-S4/frameworks/20141201-225046-698725789-5050-19765-0012' 对于未来的 gc 6.99999478812444days I1202 16:18:12.441505 1405 slave.cpp:1083] 为框架分配了任务 Task_Tracker_472 20141201-225046-698725789-5050-19765-0012 I1202 16:18:12.442337 1405 gc.cpp:84] 取消调度 '/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-S4/frameworks/20141201-225046-698725789-5050-19765-0012' 来自 gc I1202 16:18:12.442617 1405 slave.cpp:1193] 启动任务 Task_Tracker_472 用于框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:12.444263 1405 slave.cpp:3997] 启动执行器 executor_Task_Tracker_472 工作目录中的框架 20141201-225046-698725789-5050-19765-0012 '/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-S4/frameworks/20141201-225046-698725789-5050-19765-0012/executors/executor_Task_Tracker_472/runs/2310c642-02bf-401b-954c-876c88675c31' I1202 16:18:12.444756 1405 slave.cpp:1316] 排队任务 'Task_Tracker_472' 用于框架的执行器 executor_Task_Tracker_472 '20141201-225046-698725789-5050-19765-0012 I1202 16:18:12.444793 1406 containerizer.cpp:424] 启动容器 '2310c642-02bf-401b-954c-876c88675c31' 用于执行者 'executor_Task_Tracker_472' 框架 '20141201-225046-698725789-5050-19765-0012' I1202 16:18:12.447434 1406 launcher.cpp:137] 容器的 pid 为“11549”的分叉子项 '2310c642-02bf-401b-954c-876c88675c31' I1202 16:18:12.448652 1406 containerizer.cpp:571] 获取容器的 URI '2310c642-02bf-401b-954c-876c88675c31' 使用命令 '/opt/mesos-0.21.0/build/src/mesos-fetcher'
【问题讨论】:
-
您使用的是什么版本的 Mesos?你使用的是什么版本的 hadoop-mesos?您是在学习特定的教程,还是只使用来自github.com/mesos/hadoop 的自述文件?
-
@Adam 我正在使用 Mesos 0.21.0 和 Hadoop 0.0.8 库。是的,我正在关注 GitHub 上的自述文件。