본문 바로가기

미분류/Hadoop

Hadoop - Zookeeper 설치하기

♥ Apache Zookeeper

- 분산 작업을 제어하기 위한 트리 형태의 데이터 저장소

- 데이터의 변경을 감시하여 콜백을 실행한다.

- 의존성이 높기 때문에 고가용성을 꼭 지원해주어야 한다.

- Reader/Follower 투표를 통해 결정되는 방식이므로 홀수개를 설치하여야 한다.

 

1. 설치

(1) wget으로 Zookeeper Stable 버전을 다운로드 한다.

(2) 구성파일을 작성한다. 파일은 zookeeper/conf 에 위치해있다.  sample을 바꾸어서 사용하도록하자.

(3) zoo.cfg

tickTime=2000
dataDir=/data/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=master:2888:3888
server.2=slave01:2888:3888
server.3=slave02:2888:3888
ClientPort : 클라이언트 연결을 대기하는 포트 (클라이언트가 연결을 시도하는 포트)
DataDir : ZooKeeper가 메모리 내 데이터베이스를 저장할 위치
tickTime : 하트비트 간격
initLimit : 동기화 할 수 있는 시간
syncLimit : 응답을 기다리는 시간
server.x : dataDir에서 서버의 번호를 찾아 판별함

- 모든 서버가 zookeeper를 가지고 있어야 한다.

(4) 각각 서버의 dataDir 위치에 myid 파일을 심어준다. 이 파일은 conf에서 지정해준 server Numvber를 가지고 있어야 한다.

(5) 이후 scp -r zooscp -r zookeeper-3.4.14 (사용자)@(보낼 곳):(경로) 로 전송해준다.

(6) $ZOOKEEPER_HOME(zookeeper 위치)/bin 으로 이동하여 zookeeper를 실행해본다.

(7) 실행이후 PATH에 환경변수를 등록해준다.

export ZOOKEEPER_HOME=/home/centos/zookeeper-3.4.14
PATH = $PATH:$ZOOKEEPER_HOME/bin

(8) 서로 선거가 잘 되었는지 확인한다.

(Trouble Shooting)

- ERROR NAME : Cannot open channel to X at election address

대부분 zoo.cfg 파일이 제대로 설정되지 않아서 일어나는 문제이다. IP와 PORT를 잘 확인해주고 SAMPLE을 복사하여 작성했을 경우 주석 부분을 확인한다.

 혹은 SELINUX를 꺼주는 것도 한 방법이다. (/etc/sysconfig/selinux 에서 disabled)