복붙노트

[HADOOP] YarnException : 허가받지 않은 컨테이너 시작 요청

HADOOP

YarnException : 허가받지 않은 컨테이너 시작 요청

나는 3 클러스터에 hadoop2.2.0을 설치했다. 모든 것이 잘되고 있습니다. NodeManager 및 Datanode는 각 클러스터에서 시작됩니다. 그러나 단어 수를 계산할 때 100 % 매핑이 발생하고 다음과 같은 예외가 발생합니다.

map 100% reduce 0%
13/11/28 09:57:15 INFO mapreduce.Job: Task Id : attempt_1385611768688_0001_r_000000_0, Status : FAILED
Container launch failed for container_1385611768688_0001_01_000003 : org.apache.hadoop.yarn.exceptions.
YarnException: Unauthorized request to start container.
This token is expired. current time is 1385612996018 found 1385612533275
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

나는 해결책을 찾기 위해 인터넷을 통해 갔다. 그러나 나는 알아낼 수 없었다. 도와주세요.

해결법

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

    1.이 예외는 노드가 다른 시간 설정을 가지고있을 때 발생합니다. 3 개의 모든 노드가 동일한 시간대 n 시간대 설정을 가지고 있는지 확인한 다음 컴퓨터를 다시 시작하십시오.

    이 예외는 노드가 다른 시간 설정을 가지고있을 때 발생합니다. 3 개의 모든 노드가 동일한 시간대 n 시간대 설정을 가지고 있는지 확인한 다음 컴퓨터를 다시 시작하십시오.

    이것은 나를 위해 일했습니다. 희망뿐만 아니라 당신 에게이 도움 !!!!

  2. ==============================

    2.옵션 중 하나는 컨테이너의 수명을 설정하는 것입니다.

    옵션 중 하나는 컨테이너의 수명을 설정하는 것입니다.

    yarn.resourcemanager.rm.container-allocation.expiry-interval-ms

    기본값은 10 분입니다.

    예 : 서비스 전체 / 고급 yarn-site.xml 용 YARN 서비스 구성 안전 밸브

        <property>
           <name>yarn.resourcemanager.rm.container-allocation.expiry-interval-ms</name>
           <value>1000000</value>
        </property>
    
  3. ==============================

    3.시간 설정뿐 아니라 노드가 NTP를 실행하는지 또는 시간 동기화가 잘되는지 확인하십시오. 동일한 문제가 발생하여 노드 중 하나에 잘못된 YEAR이 설정되었음을 발견했습니다. 서로의 시간을 초 안에 넣으면 오류가 사라집니다.

    시간 설정뿐 아니라 노드가 NTP를 실행하는지 또는 시간 동기화가 잘되는지 확인하십시오. 동일한 문제가 발생하여 노드 중 하나에 잘못된 YEAR이 설정되었음을 발견했습니다. 서로의 시간을 초 안에 넣으면 오류가 사라집니다.

  4. ==============================

    4.갑자기이 오류가 발생하면 가상 시스템의 시간 이동으로 인한 것일 수 있습니다.

    갑자기이 오류가 발생하면 가상 시스템의 시간 이동으로 인한 것일 수 있습니다.

    시스템 시간은 잘 알려진 시간 소스와 동기화되지 않으면 장시간 실행중인 클러스터에서 몇 분 동안 표류 할 수 있습니다. 따라서 자체 시스템 시간을 사용하는 모든 클러스터 노드는 시간이 지남에 따라 산발적으로 시간 이동할 수 있습니다.

    드리프트가 눈에 띄지 않을 수 있으므로 Hadoop 작업이 처음에는 성공적으로 실행될 수 있습니다. 그러나 장시간 운영하는 클러스터에서 작업자 시간 중 하나가 너무 길어서 (마스터 시간과 비교할 때) 10 분 간격을 초과하면 작업자에게 예약 된 YARN 컨테이너가 EXPIRED로 표시되기 때문에 작업이 실패합니다. AM이 제출합니다.

    핵심 부분은 다음과 같습니다.

    YARN 컨테이너 할당에 대한 자세한 내용은 다음을 참조하십시오. http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/

    따라서 yarn-site.xml 구성 파일에서 yarn.resourcemanager.rm.container-allocation.expiry-interval-ms를 늘리면 작업이 작동합니다.

    하지만 이는 일시적인 해결 방법입니다.

    NTP는 글로벌 시간 서버 및 마스터 / 작업자 노드와의 시간 동기화를 담당합니다.

    클러스터의 모든 노드에서 NTP 데몬이 실행되고 있는지 확인해야합니다. 또한 NTP는 클러스터의 전체 수명주기 동안 "동기화"(ntpstat) 상태를 유지해야합니다. NTP가 동기화되지 않을 수있는 몇 가지 명백한 문제

    http://support.ntp.org/bin/view/Support/TroubleshootingNTP

  5. from https://stackoverflow.com/questions/20257878/yarnexception-unauthorized-request-to-start-container by cc-by-sa and MIT license