복붙노트

[HADOOP] 출력 쓰기시 Hadoop지도 축소 작업이 실패합니다.

HADOOP

출력 쓰기시 Hadoop지도 축소 작업이 실패합니다.

마침내 Hadoop (단일 데비안 머신에서 실행)에서 map-reduce 작업을 시작할 수있게되었습니다. 그러나지도 축소 작업은 항상 다음 오류 때문에 실패합니다.

hadoopmachine@debian:~$ ./hadoop-1.0.1/bin/hadoop jar hadooptest/main.jar nl.mydomain.hadoop.debian.test.Main /user/hadoopmachine/input /user/hadoopmachine/output
Warning: $HADOOP_HOME is deprecated.

12/04/03 07:29:35 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
****hdfs://localhost:9000/user/hadoopmachine/input
12/04/03 07:29:35 INFO input.FileInputFormat: Total input paths to process : 1
12/04/03 07:29:35 INFO mapred.JobClient: Running job: job_201204030722_0002
12/04/03 07:29:36 INFO mapred.JobClient:  map 0% reduce 0%
12/04/03 07:29:41 INFO mapred.JobClient: Task Id : attempt_201204030722_0002_m_000002_0, Status : FAILED
Error initializing attempt_201204030722_0002_m_000002_0:
ENOENT: No such file or directory
at org.apache.hadoop.io.nativeio.NativeIO.chmod(Native Method)
at org.apache.hadoop.fs.FileUtil.execSetPermission(FileUtil.java:692)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:647)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.mapred.JobLocalizer.initializeJobLogDir(JobLocalizer.java:239)
at org.apache.hadoop.mapred.DefaultTaskController.initializeJob(DefaultTaskController.java:196)
at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1226)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1201)
at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1116)
at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2404)
at java.lang.Thread.run(Thread.java:636)

12/04/03 07:29:41 WARN mapred.JobClient: Error reading task outputhttp://localhost:50060/tasklog?plaintext=true&attemptid=attempt_201204030722_0002_m_000002_0&filter=stdout
12/04/03 07:29:41 WARN mapred.JobClient: Error reading task outputhttp://localhost:50060/tasklog?plaintext=true&attemptid=attempt_201204030722_0002_m_000002_0&filter=stderr

불행히도, 그것은 단지 "ENOENT : No such file or directory"라고 말하면서 실제로 어떤 디렉토리에 접근하려고하는지 말하지 않습니다. Ping localhost가 작동하며 입력 디렉토리가 존재합니다. 항아리 위치도 정확합니다.

아무도 나에게이 오류를 수정하는 방법이나 Hadoop이 액세스하려고하는 파일을 찾는 방법에 대한 지침을 줄 수 있습니까?

Hadoop 메일 링리스트에서 유사한 문제가 몇 개 발견되었지만 응답이 없습니다 ...

감사!

추신 mapred.local.dir의 설정은 다음과 같습니다 (mapred-site.xml).

<property>
  <name>mapred.local.dir</name>
  <value>/home/hadoopmachine/hadoop_data/mapred</value>
  <final>true</final>
</property>

요청에 따라 ps auxww | grep TaskTracker는 다음과 같습니다 :

1000      4249  2.2  0.8 1181992 30176 ?       Sl   12:09   0:00
/usr/lib/jvm/java-6-openjdk/bin/java -Dproc_tasktracker -Xmx1000m -Dhadoop.log.dir=/home/hadoopmachine/hadoop-1.0.1/libexec/../logs
-Dhadoop.log.file=hadoop-hadoopmachine-tasktracker-debian.log -Dhadoop.home.dir=/home/hadoopmachine/hadoop-1.0.1/libexec/.. 
-Dhadoop.id.str=hadoopmachine -Dhadoop.root.logger=INFO,DRFA -Dhadoop.security.logger=INFO,NullAppender
-Djava.library.path=/home/hadoopmachine/hadoop-1.0.1/libexec/../lib/native/Linux-i386-32 
-Dhadoop.policy.file=hadoop-policy.xml -classpath [ommitted very long list of jars] org.apache.hadoop.mapred.TaskTracker

해결법

  1. ==============================

    1.작업 추적기에서이 작업이 실행 된 hadoop 노드를 식별하십시오. SSH를 사용하여 hadoop.log.dir 디렉토리의 위치를 ​​확인하십시오 (mapred-site.xml에서이 노드를 확인하십시오). - 내 생각에 hadoop 사용자는이 폴더에 하위 디렉토리를 만들 수있는 올바른 권한이 없습니다.

    작업 추적기에서이 작업이 실행 된 hadoop 노드를 식별하십시오. SSH를 사용하여 hadoop.log.dir 디렉토리의 위치를 ​​확인하십시오 (mapred-site.xml에서이 노드를 확인하십시오). - 내 생각에 hadoop 사용자는이 폴더에 하위 디렉토리를 만들 수있는 올바른 권한이 없습니다.

    생성하려고하는 실제 폴더는 $ {hadoop.log.dir} / userlogs 폴더 아래에 있습니다 -이 폴더가 올바른 권한을 가지고 있는지 확인하십시오

    귀하의 경우, 추신 : ps 출력을보고, 나는 당신이 권한을 검사 할 필요가 폴더를 추측하고있어 :

    /home/hadoopmachine/hadoop-1.0.1/libexec/../logs
    
  2. from https://stackoverflow.com/questions/9992566/hadoop-map-reduce-operation-is-failing-on-writing-output by cc-by-sa and MIT license