我尝试使用Hadoop 2.5.2在Mesos上运行一个简单的WordCount
示例。我已经成功设置了HDFS(实际上在这背后设置了一个YARN并且工作正常)。 Mesos主站正在运行,并且有4个从站连接到它。 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]分叉的孩子 用pid&#39; 18714&#39; for container&#39; c10c2d2b-bf4b-469b-97a2-60c9720773b4&#39;
dbpc42:I1202 00:03:12.068272 11232 containerizer.cpp:571]抓取 容器的URI#c10c2d2b-bf4b-469b-97a2-60c9720773b4&#39;运用 command&#39; /opt/mesos-0.21.0/build/src/mesos-fetcher'
dbpc42:I1202 00:03:12.140894 11226 containerizer.cpp:946]销毁容器 &#39; c10c2d2b-bf4b-469B-97a2-60c9720773b4&#39;
dbpc42:E1202 00:03:12.141315 11229 slave.cpp:2787] Container&#39; c10c2d2b-bf4b-469b-97a2-60c9720773b4&#39; for executor&#39; executor_Task_Tracker_93&#39;框架 &#39; 20141201-225046-698725789-5050-19765-0003&#39;无法启动:失败 获取容器的URI#c10c2d2b-bf4b-469b-97a2-60c9720773b4&#39;:退出 状态256
dbpc42:I1202 00:03:12.242033 11231 containerizer.cpp:1117] 容器的执行者&c; c10c2d2b-bf4b-469b-97a2-60c9720773b4&#39;具有 退出dbpc42:I1202 00:03:12.243896 11225 slave.cpp:2898]执行人 &#39; executor_Task_Tracker_93&#39;框架 20141201-225046-698725789-5050-19765-0003已退出状态1
作业跟踪器正常运行,使用hadoop jar
命令,作业停留在地图0%减少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]获取URI 容器&#39; 5f33123b-00eb-4e05-9dcc-30f16f5eee44&#39;使用命令 &#39; /opt/mesos-0.21.0/build/src/mesos-fetcher' I1202 16:18:08.620708 1412 slave.cpp:2840]监控执行器&#39; executor_Task_Tracker_445&#39; 框架&#39; 20141201-225046-698725789-5050-19765-0012&#39;在容器中 &#39; 5f33123b-00eb-4e05-9dcc-30f16f5eee44&#39; I1202 16:18:09.022902 1407 containerizer.cpp:1117]容器的执行者 &#39; 5f33123b-00eb-4e05-9dcc-30f16f5eee44&#39;已退出I1202 16:18:09.022964 1407 containerizer.cpp:946]销毁集装箱 &#39; 5f33123b-00eb-4e05-9dcc-30f16f5eee44&#39; 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] 执行者执行者_Task_Tracker_445&#39;框架 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)for task Task_Tracker_445 of 框架20141201-225046-698725789-5050-19765-0012来 master@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]清理遗嘱执行人 &#39; executor_Task_Tracker_445&#39;框架 20141201-225046-698725789-5050-19765-0012 I1202 16:18:11.449707 1405 gc.cpp:56]调度 &#39; / TMP / mesos /从站/ 20141201-225046-698725789-5050-19765-S4 /框架/ 20141201-225046-698725789-5050-19765-0012 /执行人/ executor_Task_Tracker_445 /运行/ 5f33123b-00eb-4e05-9dcc -30f16f5eee44&#39; for gc 6.99999479755852days in a future I1202 16:18:11.450034 1409 gc.cpp:56]调度 &#39; / TMP / mesos /从站/ 20141201-225046-698725789-5050-19765-S4 /框架/ 20141201-225046-698725789-5050-19765-0012 /执行人/ executor_Task_Tracker_445&#39; for gc 6.9999947929037days in a 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]调度 &#39; / TMP / mesos /从站/ 20141201-225046-698725789-5050-19765-S4 /框架/ 20141201-225046-698725789-5050-19765-0012&#39; for gc 6.99999478812444days in a future 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]不安排 &#39; / TMP / mesos /从站/ 20141201-225046-698725789-5050-19765-S4 /框架/ 20141201-225046-698725789-5050-19765-0012&#39; 来自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在工作目录中 &#39; / TMP / mesos /从站/ 20141201-225046-698725789-5050-19765-S4 /框架/ 20141201-225046-698725789-5050-19765-0012 /执行人/ executor_Task_Tracker_472 /运行/ 2310c642-02bf-401B-954C -876c88675c31&#39; I1202 16:18:12.444756 1405 slave.cpp:1316]排队任务 &#39; Task_Tracker_472&#39; for frameworkor的执行者executor_Task_Tracker_472 &#39; 20141201-225046-698725789-5050-19765-0012 I1202 16:18:12.444793 1406 containerizer.cpp:424]起始容器 &#39; 2310c642-02bf-401B-954C-876c88675c31&#39;执行人 &#39; executor_Task_Tracker_472&#39;框架 &#39; 20141201-225046-698725789-5050-19765-0012&#39; I1202 16:18:12.447434 1406 launcher.cpp:137]分叉的孩子带着pid&#33; 11549&#39;用于容器 &#39; 2310c642-02bf-401B-954C-876c88675c31&#39; I1202 16:18:12.448652 1406 containerizer.cpp:571]获取容器的URI &#39; 2310c642-02bf-401B-954C-876c88675c31&#39;使用命令 &#39; /opt/mesos-0.21.0/build/src/mesos-fetcher'
答案 0 :(得分:2)
检查执行程序日志(stderr
中的/tmp/mesos/slaves/...
)并发现JAVA_HOME
未设置,因此hadoop dfs
命令无法运行以获取执行程序。 URI非常完美,JAVA_HOME
未设置。另外,我必须在启动奴隶时设置HADOOP_HOME
。
答案 1 :(得分:1)
看起来Mesos slave无法获取其中一个URI,可能是执行器本身。
您是否按照mapred.mesos.executor.uri的规定将修改过的Hadoop上传到Mesos发行版(包括hadoop-mesos-0.0.8.jar)到hdfs://*.*.*.*:9000/hadoop-2.5.0-cdh5.2.0.tgz
?它可以从奴隶身上获取吗?