복붙노트

[HADOOP] Hadoop 가상 분산 모드 - 데이터 노드 및 작업 추적기가 시작되지 않음

HADOOP

Hadoop 가상 분산 모드 - 데이터 노드 및 작업 추적기가 시작되지 않음

Hadoop 1.1.2가 설치된 Red Hat Enterprise Linux Server 6.4 (산티아고) 배포판을 실행 중입니다. 의사 배포 모드를 사용하도록 필요한 구성을 만들었습니다. 그러나 hadoop을 실행하려고하면 datanode와 tasktracker가 시작되지 않습니다.

hdfs에 파일을 복사 할 수 없습니다.

[hduser@is-joshbloom-hadoop hadoop]$ hadoop dfs -put README.txt /input
Warning: $HADOOP_HOME is deprecated.

13/05/23 16:42:00 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /input could only be replicated to 0 nodes, instead of 1

또한 hadoop-daemon.sh를 시작한 후 datanode를 시작하면 다음과 같은 메시지가 나타납니다.

starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-datanode-is-joshbloom-hadoop.out

tasktracker도 마찬가지입니다. 그러나 namenode, secondarynamenode, jobtracker에 대해 동일한 명령을 실행하면 실행중인 것으로 보입니다.

namenode running as process 32933. Stop it first. 

나는 다음과 같은 해결책을 시도했다.

아무 것도 작동하지 않는 것 같습니다. 나는 내 Mac과 아마존 우분투 VM에서 동일한 설치 단계를 따라 왔으며 완벽하게 작동합니다.

어떻게해야만 작동합니까? 감사!

*최신 정보**

해결법

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

    1.호스트 이름 루프백 매핑을 포함하도록 / etc / hosts를 수정하십시오.

    호스트 이름 루프백 매핑을 포함하도록 / etc / hosts를 수정하십시오.

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    127.0.1.1   is-joshbloom-hadoop
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    

    당신의 문제는 당신의 컴퓨터가 호스트 이름 is-joshbloom-hadoop을 특정 IP 주소로 변환하는 방법을 모른다는 것입니다. 일반적으로 DNS 서버를 통해 또는 로컬 호스트 파일 (호스트 파일이 우선)을 사용하여 해상도가 두 곳 / 방법으로 발생합니다.

    호스트 파일에 대한 위의 수정은 컴퓨터가 기계 이름 is-joshbloom-hadoop을 IP 주소 127.0.1.1로 해석하도록합니다. OS는 127.0.0.0/8 범위의 내부 루프백 주소를 가지고 있으므로 여기에 주소를 지정할 수 있습니다. 내 우분투 노트북에서, 그것은 127.0.1.1을 사용하고 OS간에 변경이 될 것이라고 확신하지만, 내 생각에 127.0.0.1을 사용하지 않으면 컴퓨터 이름을 변경하면 localhost 줄에서 검색 할 필요가 없습니다. 앞으로는.

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

    2.HADOOP_HOME / conf에서 core-site.xml을 확인하십시오. fs.default.name 속성이 있습니다. /etc/hosts."is-joshbloom-hadoop "에 지정된 호스트 이름을 가져야합니다. hostname은 / etc / 대신 localhost를 사용하십시오.

    HADOOP_HOME / conf에서 core-site.xml을 확인하십시오. fs.default.name 속성이 있습니다. /etc/hosts."is-joshbloom-hadoop "에 지정된 호스트 이름을 가져야합니다. hostname은 / etc / 대신 localhost를 사용하십시오.

    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:54310</value>
    </property>
    </configuration>
    
  3. ==============================

    3.문제는 conf / slave 아래서 노예 파일에 아무것도 없다는 것 같습니다.

    문제는 conf / slave 아래서 노예 파일에 아무것도 없다는 것 같습니다.

    conf / slaves에서 슬레이브 파일을 확인하십시오. 모든 것을 제거하고 해당 파일에 localhost를 추가하십시오. hdfs-site.xml에서 dfs.name.dir 및 dfs.data.dir 특성에 언급 된 이름 및 데이터 디렉토리를 제거하십시오.

    URFS 파일 시스템을 포맷 한 다음 UR 데몬을 다시 시작하십시오.

  4. from https://stackoverflow.com/questions/16725804/hadoop-pseudo-distributed-mode-datanode-and-tasktracker-not-starting by cc-by-sa and MIT license