빅데이터/하둡 2

하둡 2.0 튜토리얼 - (2) 주키퍼 설치

Johnny Yoon 2019. 7. 21. 18:05
728x90
반응형

 

 

 

 

 

하둡 High Availability

하둡2부터는 High Availability (이하 HA)라는 용어를 사용합니다.

High Availability란 하나의 네임노드와 보조네임노드를 설정하는것이 아닌, 두개의 네임노드를 설정하는 방법입니다.

이는 Active-Stanby방법으로 두번째 네임노드가 Active네임노드에 장애가 생기면,

Stanby상태에 있다가 Active한 상태로 되는 방식입니다.

 

주키퍼 (Zookeeper)

주키퍼는 이 두개의 네임노드를 이용한 HA를 가능하게 하는 분산 코디네이터입니다.

하둡은 주키퍼를 통해 어떤 네임노드가 Active인지 혹은 Stanby인지를 저장합으로서 네임노드들을 관리합니다.

하둡 설정에 의해 주키퍼는 기본적으로 3대가 설정되어 있어야 합니다.

 

주키퍼 사용자 계정 생성

우리는 총 3개의 서버에 주키퍼를 설치해야합니다.

먼저 주키퍼 끼리의 통신을 위해 계정을 생성해주어야 합니다.

doop01 ~ 03까지의 서버에 root계정으로 로그인해 주키퍼 계정을 다음과 같이 만들어줍니다.

> adduser zookeeper

 

그리고 비밀번호를 설정해줍니다.

> passwd zookeeper

 

주키퍼 설치

주키퍼는 다음 링크에서 다운받으실 수 있습니다.

https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

wget명령어를 사용하려면 다음 명령어를 입력하시면 됩니다.

> wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

 

설치가 끝나면 먼저 압축파일을 그 자리에 풀어줍니다.

> tar xvfz zookeeper-3.4.6.tar.gz

 

그리고 압축이 풀린 폴더 안의 conf파일 내의 zoo_sample.cfg파일을 이용해 설정파일을 만들어줍니다.

> mv zookeeper-3.4.6/conf/zoo_sample.cfg zookeeper-3.4.6/conf/zoo.cfg

 

그리고 해당 파일을 열어 파일의 다음 부분들을 수정해줍니다.

dataDir=/home/zookeeper/data
maxSessionTimeout=180000
server.1=doop01:2888:3888
server.2=doop02:2888:3888
server.3=doop03:2888:3888

 

수정이 끝났으면 doop01부터 doop03까지 기기에 해당 디렉토리를 전송해줍니다.

scp에 -rp 옵션을 주면 하위 모든 폴더들을 전송합니다.

> scp -rp zookeeper-3.4.6 zookeeper@doop01:~/

 

주키퍼 서버 설정

이제 각 서버에 설정을 해주도록 하겠습니다.

위의 cfg파일에서 작성했던 것 처럼 주키퍼의 1~3번 서버는 각 doop01~03이 됩니다.

각 서버의 홈 디렉토리에 data폴더를 만들고 그 폴더 안에 myid파일을 생성합니다.

> mkdir data
> vi data/myid

그리고 해당 파일에 각각 1, 2, 3을 입력해줍니다.

 

주키퍼 서버 실행

이 작업은 선택이지만 편의를 위해 각 서버에 심볼릭 링크를 등록해줍니다.

.bashrc파일을 열어 다음 세줄을 입력해줍니다.

그리고 source .bashrc를 실행해 적용해줍니다.

alias zookeeper-start="~/zookeeper-3.4.6/bin/zkServer.sh start"
alias zookeeper-status="~/zookeeper-3.4.6/bin/zkServer.sh status"
alias zookeeper-stop="~/zookeeper-3.4.6/bin/zkServer.sh stop"

혹은 한 서버에 작업해주고 나머지 서버에 배포하셔도 됩니다.

 

각 서버에서 zookeeper-start명령으로 실행해줍니다.

그리고 3개의 서버 모두 실행항 뒤 zookeeper-status로 확인해줍니다.

status확인알 하면 세대 중 leader가 된 서버는 다음과 같은 로그가 나옵니다.

JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader

 

follower가 된 나머지 두개의 폴더는 다음과 같은 로그가 나옵니다.

JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

 

이로써 주키퍼의 설치가 끝났습니다.

 

참고자료

이 포스팅은 "시작하세요! 하둡 프로그래밍" 책의 예제를 무작정 따라해본 포스팅입니다.

https://wikibook.co.kr/beginning-hadoop-programming-2rev/

728x90
반응형