我在试着做一个简单的 WordCount
使用hadoop2.5.2的mesos示例。我已经成功地设置了hdfs(实际上在这后面设置了一个Yarn,它工作得很好)。mesos master正在运行,有4个从属连接到它。用于mesos的hadoop库是0.0.8。
hadoop2.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发射器。cpp:137]集装箱“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的pid为“18714”的叉子
dbpc42:i1202 00:03:12.068272 11232集装箱船。cpp:571]正在使用命令'/opt/mesos-0.21.0/build/src/mesos fetcher'获取容器'c10c2d2b-bf4b-469b-97a2-60c9720773b4'的URI
dbpc42:i1202 00:03:12.140894 11226集装箱船。cpp:946]销毁集装箱“c10c2d2b-bf4b-469b-97a2-60c9720773b4”
dbpc42:e1202 00:03:12.141315 11229从机。cpp:2787]框架“20141201-225046-698725789-5050-19765-0003”的执行器“executor\u task\u tracker\u 93”的容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”启动失败:无法获取容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的uri:退出状态256
dbpc42:i1202 00:03:12.242033 11231集装箱船。cpp:1117]容器“c10c2d2b-bf4b-469b-97a2-60c9720773b4”的执行器已退出dbpc42:i1202 00:03:12.243896 11225从属。cpp:2898]已退出框架20141201-225046-698725789-5050-19765-0003的“executor\u task\u tracker\u 93”,状态为1
工作追踪系统运行良好 hadoop jar
命令作业在Map0%处停止减少0%。中观星团信息 TASKS_LOST
柜台一直往上走,直到我把工作干掉。mesos和jobtracker作为root运行,作业作为user运行 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
由于(可能)无法获取executor uri,其他4个从属服务器仍在丢失任务。
以下是运行在同一台pc上的第5个从机的日志,其中主机执行以下操作:
i1202 16:17:57.4345 1405集装箱船。cpp:571]正在使用命令“/opt/mesos-0.21.0/build/src/mesos fetcher”i1202 16:18:08.620708 1412 slave获取容器“5f33123b-00eb-4e05-9dcc-30f16f5eee44”的URI。cpp:2840]监控容器中框架“20141201-225046-698725789-5050-19765-0012”的执行者“执行者任务跟踪者445”‘5f33123b-00eb-4e05-9dcc-30f16f5eee44’i1202 16:18:09.022902 1407集装箱船。cpp:1117]集装箱“5f33123b-00eb-4e05-9dcc-30f16f5eee44”的执行者已退出i1202 16:18:09.022964 1407集装箱船。cpp:946]销毁集装箱'5f33123b-00eb-4e05-9dcc-30f16f5eee44'w1202 16:18:11.369912 1407集装箱船。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] framework 20141201-225046-698725789-5050-19765-0012的executor'executor\u task\u tracker\u 445'退出,状态为1 i1202 16:18:11.401941412 slave。cpp:2215]处理框架20141201-225046-698725789-5050-19765-0012的任务跟踪程序的状态更新任务丢失(uuid:959709c2-5546-41fd-9af3-09f024bb6354),从@0.0.0:0 w1202开始16:18:11.402245 1409集装箱船。cpp:852]忽略未知容器的更新:5f33123b-00eb-4e05-9dcc-30f16f5eee44 i1202 16:18:11.403017 1410状态更新管理器。cpp:317]已收到框架20141201-225046-698725789-5050-19765-0012 i1202的任务跟踪程序的状态更新任务丢失(uuid:959709c2-5546-41fd-9af3-09f024bb6354)16:18:11.403437 1406从机。cpp:2458]将framework 20141201-225046-698725789-5050-19765-0012的task tracker_445的更新task_lost(uuid:959709c2-5546-41fd-9af3-09f024bb6354)转发到master@157.181.165.41:5050 i1202 16:18:11.448752 1409状态更新管理器。cpp:389]已接收状态更新确认(uuid:959709c2-5546-41fd-9af3-09f024bb6354),用于框架20141201-225046-698725789-5050-19765-0012 i1202 16:18:11.449354 1408从机的任务跟踪程序。cpp:3007]正在清理框架20141201-225046-698725789-5050-19765-0012 i1202的执行器“executor\u task\u tracker\u 445”: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.9999979755852天的未来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'用于gc 6.999997929037days in the future i1202 16:18:11.450147 1408 slave。cpp:3084]清理框架20141201-225046-698725789-5050-19765-0012 i1202 16:18:11.450213 1406状态更新管理器。cpp:279]正在关闭框架20141201-225046-698725789-5050-19765-0012 i1202的状态更新流16:18:11.450381 1412 gc。cpp:56]为gc 6.99999788124442 16:18:12.441505 1405调度“/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-19765-0012”奴隶。cpp:1083]已为框架20141201-225046-698725789-5050-19765-0012 i1202 16:18:12.442337 1405 gc分配任务\u tracker\u 472。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]启动任务框架20141201-225046-698725789-5050-19765-0012 i1202的任务跟踪程序\u 472 16:18:12.444263 1405从。cpp:3997]在工作目录中启动框架20141201-225046-698725789-5050-19765-0012的executor executor\u task\u tracker\u 472'/tmp/mesos/slaves/20141201-225046-698725789-5050-19765-s4/frameworks/20141201-225046-698725789-5050-19765-0012/executors/executor\u task\u tracker\u 472/runs/2310c642-02bf-401b-954c-876c88675c31'i1202 16:18:12.444756 1405 slave。cpp:1316]为框架的executor executor task tracker\u 472排队任务'task\u tracker\u 472''20141201-225046-698725789-5050-19765-0012 i1202 16:18:12.444793 1406集装箱船。cpp:424]为框架“20141201-225046-698725789-5050-19765-0012”i1202 16:18:12.447434 1406启动器的执行器“executor\u task\u tracker\u 472”启动容器“2310c642-02bf-401b-954c-876c88675c31”。cpp:137]带pid“11549”的分叉子容器‘2310c642-02bf-401b-954c-876c88675c31’i1202 16:18:12.448652 1406集装箱船。cpp:571]正在使用命令“/opt/mesos-0.21.0/build/src/mesos fetcher”获取容器“2310c642-02bf-401b-954c-876c88675c31”的URI
2条答案
按热度按时间q8l4jmvw1#
检查执行器日志(
stderr
在/tmp/mesos/slaves/...
)我发现JAVA_HOME
未设置,因此hadoop dfs
命令无法运行以获取执行器。uri是完美的JAVA_HOME
未设置。另外,我还得HADOOP_HOME
启动奴隶的时候。b09cbbtk2#
看起来mesos slave无法获取其中一个uri,很可能是执行器本身。
你把修改过的hadoop上传到mesos发行版(包括hadoop-mesos-0.0.8.jar)了吗
hdfs://*.*.*.*:9000/hadoop-2.5.0-cdh5.2.0.tgz
是否由mapred.mesos.executor.uri指定?从奴隶那里可以到达吗?