khstar

zookeeper 실행하기 및 주의 사항 본문

빅데이터

zookeeper 실행하기 및 주의 사항

khstar 2019. 7. 15. 16:51
반응형

zookeeper의 설치 방법은 https://mslee89.tistory.com/188 에 잘 나와 있습니다.

참고 하시고요.

 

전 zookeeper를 실행하는 방법에 대해 글을 적습니다.

zookeeper 실행하기 글을 적는 이유는 하다 보면 저 처럼 단순한 경우 오해를 할수 있기 때문입니다. ;;

 

우선 서버 두대만 설치했습니다. CentOS7에 설치하면서 /usr/local/zookeeper로 설치를 하였습니다.

환경설정은 zoo.cfg 파일에 작성을 하면 됩니다.

 

standalone 실행인 경우 아래의 서버 설정을 삭제하거나 주석처리 하시면 됩니다.

#server.1=master:2888:3888
#server.2=slave1:2888:3888

 

실행방법은 /usr/local/zookeeper/bin의 zkServer.sh start 명령을 주시면 됩니다.

 

그리고 실행을 확인하기 위하 zkServer.sh status를 실행하면 첨부이미지와 같이 Mode : standalone 이 표시됩니다.

이제 zkCli.sh -server localhost:2181 명령어를 실행하면 로그가 쭉 나오고 첨부이미지와 같이

[zk: localhost:2181(CONNECTED) 0] 프롬프트가 표시 됩니다.

[zk: localhost:2181(CONNECTED) 0] 프롬프트가 표시 됩니다. 프롬프트에서 ls / 명령어를 실행하면 트리가 보입니다.

 

그런데 MultiNode Mode로 실행하는 경우 위의 zoo.cfg 파일에 각각의 서버 설정을 해주셔야 합니다.

server.1=master:2888:3888
server.2=slave1:2888:3888

 

여기서 master, slave1은 서버 host명입니다. /etc/hosts 에 host 설정이 되어 있는지 확인하세요.

그리고 master, slave1서버에 모두 zookeeper가 설치되어 있고 같이 설정되어 있어야 합니다.

 

뭐 이건 위에 링크된 사이트에 따라 설치를 하셨다면 문제 없겠죠.

 

자 우선 master에서 zkServer.sh start 명령어를 이용해 zookeeper를 실행하고

zkServer.sh status 명령어로 실행 상태를 확인하겠습니다.

zookeeper가 실행되었다고 나옵니다.

그런데 zkServer.sh status를 실행하면 첨부 파일과 같이 Error가 표시 됩니다.

zkCli.sh -server localhost:2181 로 서버에 붙으면 다음과 같은 로그가 계속 출력됩니다. ㅜㅜ

 

이 문제는 아주~~~ 단순하게도 제가 단순했기 때문입니다. ㅜㅜ

zookeeper는 각 서버 별로 직접 실행해 줘야 합니다. 서버들이 상호 연결이 되면 해결되는 문제였습니다.

앞에서 slave1에서 zkServer.sh start 를 실행합니다.

자 위와 같이 slave1에서 zookeeper를 실행했습니다. 다시  master 서버에서 zkServer.sh status를 확인합니다.

master 서버의 Mode 가 leader로 표시됩니다.

slave1 서버의 Mode는 follower로 표시됩니다.

주의

zookeeper가 multinode로 실행되는 경우 leader와 follower는 zookeeper가 상황에 맞춰서 직접 선택하기 때문에 

상황에 따라 변경될수 있습니다. 오류가 아니니 오해하지 마시기 바랍니다.

 

참고 : https://kimseunghyun76.tistory.com/397

반응형
Comments