1

我正在尝试WordCount使用 Hadoop 2.5.2 在 Mesos 上运行一个简单的示例。我已经成功设置了 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] 使用命令“/opt/mesos-0.21.0/build/src/mesos-fetcher”获取容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的 URI

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] Container 'c10c2d2b-bf4b-469b-97a2-60c9720773b4' for executor 'executor_Task_Tracker_93' of framework '20141201-225046-698725789-5050-19765-0003' failed to start :无法获取容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的 URI:退出状态 256

DBPC42:I1202 00:03:12.242033 11231 Containerer.cpp:1117] ecectuter for Container'C10C2D2B-BF4B-469B-469B-97A2-60C9720720773B4已退出DBPC42:I11202:i1202:i1202 oertor框架 20141201-225046-698725789-5050-19765-0003 以状态 1 退出

作业跟踪器运行良好,hadoop jar命令作业卡在map 0% reduce 0%。在 mesos 集群信息中,TASKS_LOST计数器一直上升,直到我终止工作。Mesos 和 JobTracker 以 root 身份运行,作业以 user 身份运行hdfs

这个 URI 问题到底是怎么回事?

感谢您的帮助或提示!

(如果需要,我会提供更多信息。)

更新

在主机运行的同一台 PC 上启动从机将使任务进入暂存状态。5、每次。

mapred-mesos.executor.uri已从 IP 更改为(主dbpc41PC)。

<property>
     <name>mapred.mesos.executor.uri</name>
     <value>hdfs://dbpc41:9000/hadoop-2.5.0-cdh5.2.0.tgz</value>
</property

由于(可能)无法获取执行程序 URI,其他 4 个从属服务器仍在丢失任务。

这些是在主服务器所在的同一台 PC 上运行的第 5 个从服务器的日志:

I1202 16:17:57.434345 1405 containerizer.cpp:571] 使用命令 '/opt/mesos-0.21.0/build/src/mesos-fetcher' I1202 16 获取容器 '5f33123b-00eb-4e05-9dcc-30f16f5eee44' 的 URI :18:08.620708 1412 SLAVE.CPP:2840]监视执行器'exectutor_task_tracker_445'framework'20141201-225046-698725789-505050505050-19765-0012 1407 containerizer.cpp:1117] 容器“5f33123b-00eb-4e05-9dcc-30f16f5eee44”的执行程序已退出 I1202 16:18:09.022964 1407 containerizer.cpp:946] 正在销毁容器“5f33123b-00eb-4e05-9dcc-4”e W302e 16:18:11.369912 1407 containerizer.cpp:888] 跳过容器 5f33123b-00eb-4e05-9dcc-30f16f5eee44 的资源统计信息,因为:未能获得使用情况:No process found at 11093 W1202 16:18:11.369971 1407 containerizer.cpp:888] 跳过容器 5f33123b-00eb-4e05-9dcc-30f16f5eee44 的资源统计信息,因为:无法获得使用情况:在 11093 I1202 16:18:11.3994 找不到进程1412 slave.cpp:2898] 框架 20141201-225046-698725789-5050-19765-0012 的执行程序 'executor_Task_Tracker_445' 退出,状态为 1 I1202 16:18:11.401949 1412 slave.cpp:22215] 处理状态更新 TASK709:cUUI 5546-41fd-9af3-09f024bb6354) 用于框架 20141201-225046-698725789-5050-19765-0012 的任务 Task_Tracker_445 来自 @0.0.0.0:0 W1202 16:18:11.402245 1409 containerizer.cpp 更新未知容器:85] 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 of Framework 20141201201-225046-698725789-5050505050505050-19765-0012 41FD-9AF3-09F024BB6354)用于任务task_tracker_445 f框架20141201-225046-698725789-5050-5050-19765-0012 to Master@157.157.181.165.41:5050 I1202 16:18:18:11.11.11.11.444.444.444.444.444.452 empter_165.41: 959709C2-5546-41FD-9AF3-09F024BB6354)用于任务任务task_tracker_445 for framework 20141201201201-225046-698725789-50505050505789-5050-19765-12202 i1202 i1202 i1202 i1202 emotor 2014444444444444444449354 1408.3.444413 avety.trable oft: -698725789-5050-19765-0012 I1202 16:18:11.449707 1405 gc.cpp:56] 调度'/TMP/MESOS/SLAVES/20141201-225046-698725789-5050-19765-S4/FRAGEWORKS/20141201201255046-698725789-50505050-19765-0012 gc 6.99999479755852days in the future I1202 16:18:11.450034 1409 gc.cpp:56] Scheduling '/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] Cleaning up framework 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/FRAGERWORKS/20141201-225046-698725789-50505050-5050-19765-FON GC 6.99999999947888888888888888888888122 :1083] 为框架 20141201-225046-698725789-5050-19765-0012 I1202 分配了任务 Task_Tracker_472 16:18:12.442337 1405 gc.cpp:84] 取消调度'/tmp/mesos/slaves/20045501271-2788-952 19765-S4/框架/20141201-225046-698725789-5050-19765-0012'来自GC I1202 16:18:12.442617 1405 Slave.CPP.CPP:1193]启动task_tracker_472 16:18:12.444263 1405 slave.cpp:3997]在工作目录'中启动框架20141201-225046-698725789-5050-19765-0012的执行器executor_Task_Tracker_472/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] 为框架'20141201-225046-698725789-5050-19765-0012 I1202 16:1439 18:12.4cpp:16:18:12.4cpp: 框架'20141201-225046-698725789-5050-19765-0012.4447 2310c642-02bf-401b-954c-876c88675c31' for executor 'executor_Task_Tracker_472' of framework '20141201-225046-698725789-5050-19765-0012' I1202 16:18:12.447434 1406 launcher.cpp:137] Forked child with pid '11549'对于容器'2310c642-02bf-401b-954c-876c88675c31' I1202 16:18:12.448652 1406 containerizer.cpp:571] 获取容器的 URIs2310c642-02bf-401b-954c-876c88675c31' 使用命令'/opt/mesos-0.21.0/build/src/mesos-fetcher'

4

2 回答 2

2

检查执行器日志(stderrin /tmp/mesos/slaves/...)并发现JAVA_HOME未设置,因此该hadoop dfs命令无法运行以获取执行器。URI 是完美的,JAVA_HOME没有设置。此外,我必须HADOOP_HOME在启动奴隶时进行设置。

于 2014-12-02T17:59:36.007 回答
1

看起来 Mesos 从站无法获取其中一个 URI,可能是执行程序本身。

您是否按照 mapred.mesos.executor.uri 的规定上传了修改后的 Hadoop on Mesos 发行版(包括 hadoop-mesos-0.0.8.jar)hdfs://*.*.*.*:9000/hadoop-2.5.0-cdh5.2.0.tgz?它可以从奴隶访问吗?

于 2014-12-02T09:10:20.247 回答