복붙노트

[HADOOP] 마스터에서 노드 관리자를 시작할 수 없습니다.

HADOOP

마스터에서 노드 관리자를 시작할 수 없습니다.

나는 Hadoop YARN 클러스터를 설정 중이며 머신을 마스터와 슬레이브로 사용하고 있습니다. 다음 명령을 사용하여 YARN을 시작하면 슬레이브에서는 nodemanager를 시작하지만 마스터 노드에서는 시작하지 않습니다.

sbin/yarn-daemons.sh start nodemanager

나는 또한 노예 인 주인이 있고 그 후에 송이 내의 다른 2 명의 노예가있다, 노예에있는 nodemanagers는 제대로 시작하고있다.

내가 얻는 오류 :

org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [0.0.0.0:8040] java.net.BindException: Address already in use; For more details see:  http://wiki.apache.org/hadoop/BindException

일부 명령의 출력.

cat /etc/services | grep 8040
ampify          8040/tcp                # Ampify Messaging Protocol
ampify          8040/udp                # Ampify Messaging Protocol

lsof -i tcp:8040
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    28021   df  195u  IPv6 3580602      0t0  TCP server1.mydomain.com:ampify (LISTEN

해결법

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

    1.Hadoop이 제공하는 기본 구성에서 포트 8040은 NodeManager가 로컬 라이저에 사용하는 포트입니다. 기본적으로 컨테이너를 실행하는 데 필요한 파일을 로컬 노드로 가져 오는 책임이있는 서버 끝점입니다. 예를 들어 MapReduce 작업의 jar 파일 또는 분산 캐시 파일 일 수 있습니다.

    Hadoop이 제공하는 기본 구성에서 포트 8040은 NodeManager가 로컬 라이저에 사용하는 포트입니다. 기본적으로 컨테이너를 실행하는 데 필요한 파일을 로컬 노드로 가져 오는 책임이있는 서버 끝점입니다. 예를 들어 MapReduce 작업의 jar 파일 또는 분산 캐시 파일 일 수 있습니다.

    정식으로 포트 8040에 바인드 된 다른 서버 (여기서는 Ampify로 표시)가 있고 그 서비스를 중지하고 싶지 않으면 Localizer에 대해 NodeManager에서 사용하는 포트를 재구성 할 수 있습니다. yarn-site.xml 파일에서 yarn.nodemanager.localizer.address 속성을 설정합니다. 여기에 문서화되어 있습니다 :

    http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

    Hadoop 트리의 XML 소스에서 가져온 내용은 ​​다음과 같습니다.

    <property>
      <description>Address where the localizer IPC is.</description>
      <name>yarn.nodemanager.localizer.address</name>
      <value>${yarn.nodemanager.hostname}:8040</value>
    </property>
    
  2. ==============================

    2.위의 오류는 8040에서 이미 다른 인스턴스가 차지하고있는 프로세스를 시작하려고한다는 것을 의미합니다.

    위의 오류는 8040에서 이미 다른 인스턴스가 차지하고있는 프로세스를 시작하려고한다는 것을 의미합니다.

    이 오류를 제거하려면 현재 포트 8040을 청취하고있는 프로세스를 종료해야합니다. lsof 출력에 pid가 28021이라고 표시됩니다. 다음 명령을 사용하여 프로세스를 종료하고 다시 시작하십시오

    kill -9 28021
    
  3. from https://stackoverflow.com/questions/25153240/unable-to-start-a-node-manager-on-master by cc-by-sa and MIT license