Windows 10 시스템에서 Hadoop Docker 컨테이너를 실행하고 있습니다. 내 HDFS에 액세스하기 위해 this 라이브러리를 사용하는 Python 프로그램을 작성하려고합니다. "http://localhost:50070"(50070은 webHDFS 포트)으로 구성된 클라이언트로 폴더 내용을 나열 할 수 있습니다. 그러나 파일의 내용을 읽으려고 할 때 주소를 확인할 수 없다는 오류가 나타납니다. 반환 된 오류에서 호스트는 "localhost"또는 "127.0.0.1"대신 "Docker container"의 ID "453af3bd9164"입니다.Docker 컨테이너에 대한 HTTP 호출은 IP를 Docker ID로 리디렉션합니다.
다른 Docker 컨테이너와 다른 Python 라이브러리를 사용해 보았지만 유사한 오류가 발생했습니다. 따라서 내 Docker 또는 Hadoop 환경을 올바르게 구성하지 않는다고 생각합니다. Docker 호스트 컴퓨터에서 NameNode WebUI에 액세스 할 수 있고 목록 폴더 내용이 제대로 작동하므로 내 데이터 노드 구성이 문제가 될 수 있다고 생각합니다. WebUI를 통해 확인할 때 내 데이터 노드는 "In Service"로 표시되므로 적어도 실행 중입니다.
내 HDFS 데이터 노드에 대한 HTTP 호출이 제대로 작동하도록 내 환경을 올바르게 구성하려면 어떻게해야합니까?
코어를 site.xml :
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
HDFS-site.xml 파일 :
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50075</value>
</property>
</configuration>
etc/hosts 파일 : 시간 후
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 453af3bd9164
192.168.56.1 192.168.56.1
hadoop에 대해서는 0이 아니지만 ... 나는 구성에서 localhost를 사용하고 싶지 않을 것이라고 확신합니다. 실제 호스트 이름을 사용하십시오. – user2105103