Hadoop HA Datanode java.net.UnknownHostException
Hadoop Namenode HA 구성을 했습니다.core-site.xml에 fs.defaultFS를 hdfs://hadoop-ha로 설정했습니다. <property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-ha</value>
</property> WebHDFS REST API 중 파일 생성하는 API를 Active 상태의 Namenode 주소로 호출했는데,{
"RemoteException": {
"exception": "IllegalArgumentException",
"javaClassName": "java.lang.IllegalArgumentException",
"message": "java.net.UnknownHostException: hadoop-ha"
}
}위와 같은 에러가 발생합니다.⬇ 호출한 API[ PUT ] http://{server_ip}:{active_namenode_port}/webhdfs/v1/testB?op=CREATE 마찬가지로 datanode의 내부 쉘에서 hdfs dfs -ls /와 같은 명령어를 입력하면,2024-08-05 06:08:49,260 WARN fs.FileSystem: Failed to initialize filesystem hdfs://hadoop-cluster: java.lang.IllegalArgumentException: java.net.UnknownHostException: hadoop-ha-ls: java.net.UnknownHostException: hadoop-ha에러가 발생합니다. Hadoop HA 구성은 본 서버에 namenode1, namenode2, datanode1, datanode2, datanode3을docker compose로 같은 네트워크 내에서 동작하도록 5개 컨테이너를 생성하여 실행하였습니다. 각 컨테이너의 /etc/hosts에 active 상태의 namenode 주소를active_namenode_container_ip hadoop-ha이렇게 하나씩 명시하면 API 호출도 잘 되고 명령어 실행도 잘 되지만,active namenode가 죽고 standby namenode가 active 상태가 되면 동일한 에러가 발생합니다. hadoop-ha를 active 상태의 namenode ip와 자동으로 연결되도록 하는 방법은 없나요? 🥲🥲 ha 설정은 namenode가 죽었을 때 정상적으로 돌아가게 하기 위한 구성인데,/etc/hosts를 수동으로 명시하는 방법은 맞지 않은 거 같아서 질문 남깁니다..( ᐪ ᐪ )