복붙노트

[HADOOP] Hadoop이 실행 중이더라도 작업 추적기에 내 직업을 보여주지 않습니다.

HADOOP

Hadoop이 실행 중이더라도 작업 추적기에 내 직업을 보여주지 않습니다.

문제점 : hadoop 2.2.0 클러스터에 작업을 제출하면 작업 추적기에 나타나지 않지만 작업이 성공적으로 완료됩니다. 이것으로 출력물을 볼 수 있으며 출력물이 올바르게 작동하고 출력물이 출력 될 때 출력합니다.

muliple 옵션을 시도했지만 작업 추적자가 작업을보고 있지 않습니다. 2.2.0 hadoop을 사용하여 스트리밍 작업을 실행하면 작업 추적기에 나타나지만 hadoop-client API를 통해 제출하면 작업 추적기에 나타나지 않습니다. 작업을 확인하기 위해 포트 8088의 UI 인터페이스를보고 있습니다.

환경 OSX Mavericks, Java 1.6, Hadoop 2.2.0 단일 노드 클러스터, Tomcat 7.0.47

암호

    try {
        configuration.set("fs.defaultFS", "hdfs://127.0.0.1:9000");
        configuration.set("mapred.jobtracker.address", "localhost:9001");

        Job job = createJob(configuration);
        job.waitForCompletion(true);
    } catch (Exception e) {
        logger.log(Level.SEVERE, "Unable to execute job", e);
    }

    return null;

etc / hadoop / mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

    <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
    </property> 
</configuration>

etc / hadoop / core-site.xml

<configuration>
     <property>
       <name>hadoop.tmp.dir</name>
       <value>/tmp/hadoop-${user.name}</value>
       <description>A base for other temporary directories.</description>
    </property>

    <property> 
      <name>fs.default.name</name> 
      <value>hdfs://localhost:9000</value> 
    </property>

</configuration>

해결법

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

    1.이 문제에 대한 해결책은 실에 대한 추가 구성 옵션으로 작업을 구성하는 것이 었습니다. 나는 java hadoop-client api가 설정 디렉토리의 설정 옵션을 사용할 것이라는 잘못된 가정을 int로 만들었다. 내 단위 테스트를 위해 log4j.properties를 사용하여 자세한 로깅을 설정하여 문제를 진단 할 수있었습니다. 작업이 현지에서 진행 중이며 원사 자원 관리자에게 제출되지 않았 음을 보여줍니다. 약간의 시행 착오를 통해 작업을 구성하고 원사 자원 관리자에게 제출할 수있었습니다.

    이 문제에 대한 해결책은 실에 대한 추가 구성 옵션으로 작업을 구성하는 것이 었습니다. 나는 java hadoop-client api가 설정 디렉토리의 설정 옵션을 사용할 것이라는 잘못된 가정을 int로 만들었다. 내 단위 테스트를 위해 log4j.properties를 사용하여 자세한 로깅을 설정하여 문제를 진단 할 수있었습니다. 작업이 현지에서 진행 중이며 원사 자원 관리자에게 제출되지 않았 음을 보여줍니다. 약간의 시행 착오를 통해 작업을 구성하고 원사 자원 관리자에게 제출할 수있었습니다.

    암호

        try {
            configuration.set("fs.defaultFS", "hdfs://127.0.0.1:9000");
            configuration.set("mapreduce.jobtracker.address", "localhost:54311");
            configuration.set("mapreduce.framework.name", "yarn");
            configuration.set("yarn.resourcemanager.address", "localhost:8032");
    
            Job job = createJob(configuration);
            job.waitForCompletion(true);
        } catch (Exception e) {
            logger.log(Level.SEVERE, "Unable to execute job", e);
        }
    
  2. ==============================

    2.Hadoop 2.2.0을 사용하고 있습니다. MRv1 또는 MRv2를 사용하고 있습니까? MRv2 (YARN)의 데몬은 다릅니다. Job Tracker UI에 대한 자리 표시 자 페이지가 표시 될 수 있지만 MRv2에 대한 JobTracker는 없습니다.

    Hadoop 2.2.0을 사용하고 있습니다. MRv1 또는 MRv2를 사용하고 있습니까? MRv2 (YARN)의 데몬은 다릅니다. Job Tracker UI에 대한 자리 표시 자 페이지가 표시 될 수 있지만 MRv2에 대한 JobTracker는 없습니다.

    ResourceManager 웹 UI에 제출 된 작업이 표시되어야합니다. ResourceManager의 기본 웹 URL은 http : // : 8088입니다.

    ResourceManagerHost를 Resource Manager가 실행중인 노드의 IP 주소로 바꾸십시오.

    Apache Hadoop YARN에서 YARN 아키텍처에 대한 자세한 내용을 볼 수 있습니다.

  3. from https://stackoverflow.com/questions/21345022/hadoop-is-not-showing-my-job-in-the-job-tracker-even-though-it-is-running by cc-by-sa and MIT license