복붙노트

[HADOOP] 로컬 호스트에서만 액세스 할 수있는 하둡 작업 추적기

HADOOP

로컬 호스트에서만 액세스 할 수있는 하둡 작업 추적기

하둡 (0.20.2)을 설정하고 있습니다. 우선, 나는 그것이 단일 머신에서 실행되기를 원합니다. 어쩌면 어느 시점에 클러스터가 필요할 것입니다. 그러나 거기에 도착하면 걱정할 것입니다. 클라이언트 코드가 작업 추적기에 연결하여 작업을 시작할 수있는 지점에 도달했지만 한 가지 문제가 있습니다. 작업 추적기는 실행중인 동일한 시스템에서만 액세스 할 수 있습니다. 실제로 nmap으로 포트 스캔을 수행했으며 Hadoop 시스템에서 스캔 할 때 포트 9001이 열려 있고 다른 곳에서있을 때 닫혔습니다.

나는 세 대의 컴퓨터 (VirtualBox에서 실행되는 Mac, 하나의 Ubuntu 및 Ubuntu VM)에서 이것을 시도했습니다. 그들 중 어느 방화벽도 설정되어 있지 않으므로 하둡 문제라고 확신합니다. 어떤 제안?

해결법

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

    1.hadoop 구성 파일에서 fs.default.name 및 mapred.job.tracker는 localhost를 참조합니까?

    hadoop 구성 파일에서 fs.default.name 및 mapred.job.tracker는 localhost를 참조합니까?

    그렇다면 Hadoop은 루프백 인터페이스의 포트 9000 및 9001 만 수신하며 다른 호스트에서는 액세스 할 수 없습니다. fs.default.name 및 mapred.job.tracker가 시스템의 외부 액세스 가능한 호스트 이름을 참조하는지 확인하십시오.

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

    2./ etc / hosts 파일에 마스터를 두 번 나열하지 않았는지 확인하십시오. 나는 마스터가 127.0.1.1의 청취만을 허용하는 다음과 같은 것을 가지고 있었다.

    / etc / hosts 파일에 마스터를 두 번 나열하지 않았는지 확인하십시오. 나는 마스터가 127.0.1.1의 청취만을 허용하는 다음과 같은 것을 가지고 있었다.

    127.0.1.1    hostname    master
    192.168.x.x  hostname    master
    192.168.x.x  slave-1
    192.168.x.x  slave-2
    

    위의 답변으로 문제가 발생했습니다. / etc / hosts 파일을 다음과 같이 변경하여 작동 시켰습니다.

    127.0.1.1    hostname   
    192.168.x.x  hostname    master
    192.168.x.x  slave-1
    192.168.x.x  slave-2
    

    netstat -an | grep : 9000을 사용하여 연결이 작동하는지 확인하십시오!

  3. ==============================

    3.위의 답변 외에도 마스터의 / etc / hosts (ubuntu 실행)에 다음 줄이 있음을 알았습니다.

    위의 답변 외에도 마스터의 / etc / hosts (ubuntu 실행)에 다음 줄이 있음을 알았습니다.

    127.0.1.1 마스터

    즉, 마스터에서 nslookup 마스터를 실행하면 로컬 주소가 반환되었으므로 mapred-site.xml에서 master를 사용하더라도 동일한 문제가 발생했습니다. 내 솔루션 (아마도 더 나은 것이있을 수 있음)은 내 DNS 서버에서 별칭을 만들고 대신 사용하는 것이 었습니다. / etc / hosts의 IP 주소를 외부 주소로 변경할 수도 있지만 시도하지는 않았습니다. 다른 서비스에 어떤 영향을 줄지 잘 모르겠습니다.

  4. from https://stackoverflow.com/questions/4855808/hadoop-job-tracker-only-accessible-from-localhost by cc-by-sa and MIT license