Mesos 0.21.0上的Hadoop 2.5.2 - 无法获取容器的URI

时间:2014-12-01 21:17:13

标签: hadoop mapreduce mesos

我尝试使用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'

2 个答案:

答案 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?它可以从奴隶身上获取吗?