복붙노트

[HADOOP] hadoop 2.4.0에서 MapReduce 작업을 실행할 수 없습니다.

HADOOP

hadoop 2.4.0에서 MapReduce 작업을 실행할 수 없습니다.

나는 새삼스럽고 여기에 내 문제가있다. 나는 3 대의 컴퓨터 클러스터에서 jdk1.7.60으로 hadoop 2.4.0을 구성했다. 나는 hadoop의 모든 명령을 실행할 수있다. 이제 wordcount 예제를 수정하고 jar 파일을 만들었습니다. hadoop 1.2.1에서이 jar 파일을 이미 실행했으며 그 결과를 얻었습니다. 하지만 이제 hadoop 2.4.0에서 어떤 결과도 얻지 못하고 있습니다.

실행에 사용되는 명령

$hadoop jar WordCount.jar WordCount /data/webdocs.dat /output

설치 프로그램에서 다음 메시지가 나타납니다.

14/06/29 19:35:18 INFO client.RMProxy: Connecting to ResourceManager at /192.168.2.140:8040
14/06/29 19:35:18 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
14/06/29 19:35:19 INFO input.FileInputFormat: Total input paths to process : 1
14/06/29 19:35:19 INFO mapreduce.JobSubmitter: number of splits:12
14/06/29 19:35:19 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1403905542893_0004
14/06/29 19:35:19 INFO impl.YarnClientImpl: Submitted application application_1403905542893_0004
14/06/29 19:35:19 INFO mapreduce.Job: The url to track the job: http://192.168.2.140:8088/proxy/application_1403905542893_0004/
14/06/29 19:35:19 INFO mapreduce.Job: Running job: job_1403905542893_0004

이 시점에서 메시지는 변경되지 않습니다. 나는 15 분에서 20 분 동안 기다렸지 만 여전히 동일하다.

이것은 자원 관리자의 웹 페이지에서 작업과 관련하여 볼 수 있습니다.

State - ACCEPTED
FinalStatus - UNDEFINED
Progress - (progress bar in 0%)
Tracking UI - UNASSIGNED

Apps Submitted - 1
Apps Pending - 1
Apps Running - 0

실행을 위해 다른 원사 명령을 시도했지만 동일한 결과를 얻었습니다.

$yarn jar WordCount.jar WordCount /data/webdocs.dat /output

다음은 jps의 출력입니다.

21485 NameNode
23142 DataNode
28504 Jps
21704 ResourceManager
22082 JobHistoryServer

어떤 도움이나 지침도 높이 평가 될 것입니다.

해결법

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

    1.나는 그 문제를 해결했다. 그것은 hadoop의 설정 파일에서 실수였습니다. resourcemanager에 대해 포트 8040에서 바인드 예외가 발생했습니다.

    나는 그 문제를 해결했다. 그것은 hadoop의 설정 파일에서 실수였습니다. resourcemanager에 대해 포트 8040에서 바인드 예외가 발생했습니다.

    hadoop yarn-site.xml을 (old yarn-site.xml)에서 다음과 같이 변경했습니다.

    <configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>192.168.2.140:8025</value>
    </property>
    <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>192.168.2.140:8030</value>
    </property>
    <property>
      <name>yarn.resourcemanager.address</name>
      <value>192.168.2.140:8040</value>
    </property>
    </configuration>
    

    To (new yarn-site.xml) :

    <configuration>
     <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
     </property>
     <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
    </configuration>
    

    내가 hadoop 구성에서 다른 라인을 삭제했습니다. 그런 다음 나는 resourcemanager와 nodemanager를 시작하기 위해 다음 명령을 사용한다.

    $yarn-daemon.sh start nodemanager
    $yarn-daemon.sh start resourcemanager
    

    그 때 나는 나의 일을 실행하는 것을 시도하고 성공적이었다.

  2. from https://stackoverflow.com/questions/24481439/cant-run-a-mapreduce-job-on-hadoop-2-4-0 by cc-by-sa and MIT license