[Hadoop] hadoop 3.3.3 버전 docker로 설치하기
GitHub - kangprog/hadoop_cluster_tutorial: 하둡클러스터 튜토리얼
하둡클러스터 튜토리얼. Contribute to kangprog/hadoop_cluster_tutorial development by creating an account on GitHub.
github.com
예전에 docker 형태로 구축했었던 hadoop을 가지고, 버전업데이트를 해보면서
- hadoop 2.9.2 버전 → 3.3.3 버전
- zookeeper 3.4.9 버전 → 3.8.0 버전
마주한 문제는 아래와 같다.
zookeeper 설치 시 압축 파일명이 바꼈다.
3.4.9 버전에서는 zookeeper-$ZOOKEEPER_VERSION.tar.gz이였는데,
3.8.0 버전에서는 apache-zookeeper-$ZOOKEEPER_VERSION.tar.gz으로 바뀌었다.
버전 업 후, hadoop cluster를 실행시키는데
namenode, HQuorumPeer, DFSZKFailoverController가 정상적으로 실행되지 않았다.
로그들을 확인해보니, zookeeper 로그 중에 아래와 같은 로그를 확인했다.
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
구글링을 좀 해보니, 해결 방법 중에
apache-zookeeper-$ZOOKEEPER_VERSION.tar.gz → apache-zookeeper-$ZOOKEEPER_VERSION-bin.tar.gz
으로 설치를 하면 해결이 된다는 글이 있었다.
그래서 Dockerfile을 수정하고 다시 설치 후, 동작 시켰더니 실행 잘됨.
Starting Zookeeper Cluster. Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
(I'm running on CentOS 5.8). I've been following the direction for a Clustered (Multiserver) Zookeeper Set-up, but getting an error when I try to start up my server. When I run the command as descr...
stackoverflow.com
namenode, datanode 컨테이너들이 올라온것을 확인하고,
yarn UI로 들어가서 확인했더니, Active Nodes가 1인것을 확인했다.
(실제 띄운 노드는 namenode 2, datanode 3)
이유를 확인해보니, nodemanager가 datanode에서 다 실행되고 있지 않았다.
그래서 $HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager 를 사용하여 실행 시켜줌.
(entrypoint.sh에 추가)
이렇게 정상적으로 전부 실행되었다.!