使用cephfs运行hadoop时出现“jobToken不存在”错误

使用cephfs运行hadoop时出现“jobToken不存在”错误,hadoop,hdfs,word-count,ceph,Hadoop,Hdfs,Word Count,Ceph,我是ceph的新手。我有一个5节点的集群Ubuntu14.04,其中我安装了Hadoop 1.1.1和ceph v0.87。我想将Hadoop与cephFS结合使用,并运行一些实验。我使用正常的hadoop设置运行了wordcount示例,效果很好。ceph群集运行状况也正常。但是,当我按照“将Hadoop与CephFS结合使用”文档中的说明更改Hadoop配置时,我遇到了以下错误:我在/mnt/mycephfs中安装了带有内核驱动程序的CephFS: ceph@admin-节点:/usr/lo

我是ceph的新手。我有一个5节点的集群Ubuntu14.04,其中我安装了Hadoop 1.1.1和ceph v0.87。我想将Hadoop与cephFS结合使用,并运行一些实验。我使用正常的hadoop设置运行了wordcount示例,效果很好。ceph群集运行状况也正常。但是,当我按照“将Hadoop与CephFS结合使用”文档中的说明更改Hadoop配置时,我遇到了以下错误:我在/mnt/mycephfs中安装了带有内核驱动程序的CephFS:

ceph@admin-节点:/usr/local/hadoop-1.1.1$bin/hadoop-jar hadoop-examples-1.1.jar wordcount/mnt/mycephfs/wc-input/mnt/mycephfs/wc-output-425

15/04/14 20:47:00 INFO util.NativeCodeLoader: Loaded the native-hadoop library
15/04/14 20:47:00 INFO input.FileInputFormat: Total input paths to process : 1
15/04/14 20:47:00 WARN snappy.LoadSnappy: Snappy native library not loaded
15/04/14 20:47:01 INFO mapred.JobClient: Running job: job_201504142046_0001
15/04/14 20:47:02 INFO mapred.JobClient:  map 0% reduce 0%
15/04/14 20:47:03 INFO mapred.JobClient: Task Id : attempt_201504142046_0001_m_000021_0, Status : FAILED
Error initializing attempt_201504142046_0001_m_000021_0:
java.io.FileNotFoundException: File file:/app/hadoop/tmp/mapred/system/job_201504142046_0001/jobToken does not exist.
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:397)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251)
        at org.apache.hadoop.mapred.TaskTracker.localizeJobTokenFile(TaskTracker.java:4445)
        at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1272)
        at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1213)
        at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2568)
        at java.lang.Thread.run(Thread.java:745)

15/04/14 20:47:03 WARN mapred.JobClient: Error reading task outputhttp://node2:50060/tasklog?plaintext=true&attemptid=attempt_201504142046_0001_m_000021_0&filter=stdout
15/04/14 20:47:03 WARN mapred.JobClient: Error reading task outputhttp://node2:50060/tasklog?plaintext=true&attemptid=attempt_201504142046_0001_m_000021_0&filter=stderr
15/04/14 20:47:03 INFO mapred.JobClient: Task Id : attempt_201504142046_0001_r_000002_0, Status : FAILED
Error initializing attempt_201504142046_0001_r_000002_0:
java.io.FileNotFoundException: File file:/app/hadoop/tmp/mapred/system/job_201504142046_0001/jobToken does not exist.
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:397)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251)
        at org.apache.hadoop.mapred.TaskTracker.localizeJobTokenFile(TaskTracker.java:4445)
        at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1272)
        at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1213)
        at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2568)
        at java.lang.Thread.run(Thread.java:745) 

15/04/14 20:47:03 WARN mapred.JobClient: Error reading task outputhttp://node3:50060/tasklog?plaintext=true&attemptid=attempt_201504142046_0001_m_000021_1&filter=stdout
15/04/14 20:47:03 WARN mapred.JobClient: Error reading task outputhttp://node3:50060/tasklog?plaintext=true&attemptid=attempt_201504142046_0001_m_000021_1&filter=stderr
15/04/14 20:47:04 INFO mapred.JobClient: Task Id : attempt_201504142046_0001_r_000002_1, Status : FAILED
Error initializing attempt_201504142046_0001_r_000002_1:
java.io.FileNotFoundException: File file:/app/hadoop/tmp/mapred/system/job_201504142046_0001/jobToken does not exist.
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:397)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251)
        at org.apache.hadoop.mapred.TaskTracker.localizeJobTokenFile(TaskTracker.java:4445)
        at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1272)
        at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1213)
        at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2568)
        at java.lang.Thread.run(Thread.java:745)
.....................
使用CEPFS而不是HDFS只需要映射的守护进程,因此节点1 jobtracker、4 TaskTracker中只运行jobtracker和TaskTracker。我的Hadoop的core-site.xml文件:按照另一个问题中的建议删除Hadoop.tmp.dir并不能解决问题

<configuration>


<property>
<name>fs.defaultFS</name>
<value>ceph://10.242.144.225:6789/</value>
</property>

<property>
<name>ceph.root.dir</name>
<value>/mnt/mycephfs</value>
</property>

<property>
<name>ceph.conf.file</name>
<value>/etc/ceph/ceph.conf</value>
</property>

<property>
<name>ceph.data.pools</name>
<value>data</value>
</property>

<property>
<name>fs.AbstractFileSystem.ceph.impl</name>
<value>org.apache.hadoop.fs.ceph.CephFs</value>
</property>

<property>
<name>fs.ceph.impl</name>
<value>org.apache.hadoop.fs.ceph.CephFileSystem</value>
</property>

</configuration>
mapred-site.xml是:

<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>10.242.144.212:54311</value>
  <description>The host and port that the MapReduce job tracker runs
  at.  Provide the ip address of your master node. The port number must be 54311 or 8021.
  </description>
</property>

<property>
<name>fs.defaultFS</name>
<value>ceph://10.242.144.225:6789/</value>
</property>

</configuration>

请让我知道我在哪里犯错。非常感谢您在这方面提供的任何帮助。

中建议的从core-site.xml中删除hadoop.tmp.dir的可能重复并不能解决问题