* 본 가이드는 필요 파일과 이전 포스팅까지 작업이 완료되었다는 가정하에 진행

 

주요 스펙

호스트OS - windows10 home

게스트OS들 - centOS7

Hadoop - 3.1.0

Zookeeper - 3.4.10

jdk - 1.8.0_191

MobaXterm을 활용하여 ssh원격 접속 후 작업 진행

호스트OS는 공유기(WI-FI) 연결 환경

 

서버 6대를 활용한 하둡 HA 구성:

nn01: 액티브 네임노드, 저널노드 역할

rm01: 스탠바이 네임노드, 리소스 매니저, 저널노드 역할

jn01: 저널노드 역할

dn01: 데이터 노드 역할

dn02: 데이터 노드 역할

dn03: 데이터 노드 역할

 

실행 환경:

Action Server: 명령을 수행할 서버(hostname)

User: 명령을 수행할 계정

Pwd: 명령을 수행할 경로

 

자, 이제 지금까지의 설정들을 기반으로 하둡을 실행해보도록 하겠습니다!!

 


 

주키퍼(zookeeper)서버 실행 (실행 중이라면 skip)

Action Server: nn01, rm01, jn01

User: root

Pwd: /root

# nn01, rm01, jn01서버에서 실행

# zookeeper 계정 접속 및 경로 이동
su - zookeeper
cd zookeeper-3.4.10

# zookeeper 서버 실행
./bin/zkServer.sh start

# root계정으로 복귀
exit

 


하둡(hadoop) 계정 접속 및 경로 이동

Action Server: all

User: root

Pwd: /root

# 6대의 모든 서버에서 실행

# hadoop 계정 접속
su - hadoop

# 경로 이동
cd hadoop-3.1.0

하둡 클러스터(hadoop cluster) 실행 

* 하둡 서버를 실행할 때는 nn01, rm01, jn01에서 명령문을 실행하며,

dn01, dn02, dn03서버에 자동으로 노드가 할당된다.

 

주의!

1. 차례대로 실행한다.

2. format이 포함된 명령문은 설치 후 최초 1회 실행 때에만 작성, 다음 실행부터는 생략

3. format 명령 시 Y/N문이 나오면 대문자 Y로 타이핑 - 대소문자 구별함
4. 각 명령어마다 실행되는 서버가 다르므로 주의!
5. 각 명령문마다 server hostname 확인!

 

 

ZK(주키퍼 장애 컨트롤러)를 초기화 한다.

* 설치 후 최조 1회 실행 때만 수행, nn01서버에서 진행

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs zkfc -formatZK # 최초 1회

 

 

저널노드(journal node)를 실행한다.

* nn01, rm01, jn01서버에서 진행

Action Server: nn01, rm01, jn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs --daemon start journalnode

 

 

 

네임 노드(namenode)를 초기화 한다.

* 설치 후 최조 1회 실행 때만 수행, nn01서버에서 진행

* 연결이 안 될시엔 방화벽 해제 확인

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs namenode -format NNHA # 최초 1회

 

 

 

액티브 네임노드(active namenode)를 실행한다.

* nn01서버에서 진행

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs --daemon start namenode

 

 

액티브 네임노드(active namenode)용 주키퍼 장애 컨트롤러(zkfc)를 실행한다.

* nn01서버에서 진행

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs --daemon start zkfc

 

 

등록된 데이터 노드들을 실행한다.

* nn01서버에서 진행, daemons 's' 꼭 붙이기!! damons.sh, daemon.sh 두 명령이 있음.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./sbin/hadoop-daemons.sh start datanode

 

 

 

스탠바이 네임노드(standby namenode)를 포맷한다. - 액티브 네임노드(active namenode)의 메타데이터를 스탠바이 네임노드로 복사

* 설치 후 최조 1회 실행 때만 수행, rm01서버에서 진행

Action Server: rm01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs namenode -bootstrapStandby # 최초 1회

 

 

 

스탠바이 네임노드(standby namenode) 실행

* rm01서버에서 진행

Action Server: rm01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs --daemon start namenode

 

 

 

스탠바이 네임노드(standby namenode)용 주키퍼 장애 컨트롤러(zkfc) 실행

* rm01서버에서 진행

Action Server: rm01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./bin/hdfs --daemon start zkfc

 

 

얀 클러스터(yarn cluster) 실행

* rm01서버에서 진행

Action Server: rm01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

./sbin/start-yarn.sh

 

액티브-스탠바이 네임노드 확인(active-standby namenode)

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

# nn01서버가 active, rm01서버가 standby

./bin/hdfs haadmin -getServiceState nn01

./bin/hdfs haadmin -getServiceState rm01


각 서버당 실행 서버 확인

Action Server: all

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

# 실행 중인 서버 확인
jps

nn01

rm01

 

jn01

 

dn01

 

dn02

 

dn03

 


하둡(hadoop) 웹 페이지 HTTP확인

URL창에 192.168.56.100:9870, 192.168.56.101:9870

* 액티브, 스탠바이 네임노드 모두 웹 페이지 접속이 활성화되어있음

 


하둡 클러스터(hadoop cluster)종료

주의!

1. 차례대로 실행한다.

2. 종료는 실행의 역순으로 진행

3. 마찬가지로 명령어마다 실행 서버가 다르므로 설명 참고!

 

# rm01, 얀 클러스터 종료
./sbin/stop-yarn.sh

# rm01, 스탠바이 네임노드용 주키퍼 장애 컨트롤러 종료
./bin/hdfs --daemon stop zkfc

# rm01, 스탠바이 네임노드 종료
./bin/hdfs --daemon stop namenode

# nn01, 전체 데이터 노드 종료 daemons s 꼭 붙이기
./sbin/hadoop-daemons.sh stop datanode

# nn01, 액티브 네임노드용 주키퍼 장애 컨트롤러 종료
./bin/hdfs --daemon stop zkfc

# nn01, 액티브 네임노드 종료
./bin/hdfs --daemon stop namenode

# nn01, rm01, jn01 각 저널노드 종료)
./bin/hdfs --daemon stop journalnode

 


하둡 클러스터(hadoop cluster) 최초 1회 실행 후 재 실행 시(format 제외)

# nn01, rm01, jn01 / 저널노드 실행
./bin/hdfs --daemon start journalnode

# nn01 / 액티브 네임노드 실행
./bin/hdfs --daemon start namenode

# nn01  액티브 네임노드용 주키퍼 장애 컨트롤러 실행
./bin/hdfs --daemon start zkfc

# nn01 데이터 노드 실행
./sbin/hadoop-daemons.sh start datanode

# rm01 / 스탠바이 네임노드 실행
./bin/hdfs --daemon start namenode

# rm01 / 스탠바이 네임노드용 주키퍼 장애 컨트롤러 실행
./bin/hdfs --daemon start zkfc

# rm01 / 얀 클러스터 실행
./sbin/start-yarn.sh

 


Trouble Shooting

Jps가 나타나지 않는 경우:

java 환경 변수 적용 확인

 

DFSZFailoverController가 나타나지 않는 경우:

zookeeper 서버가 nn01, rm01, jn01에서 실행되고 있는지 확인

 

권한 거부 에러:

각 계정별 ssh 공유 확인, 방화벽 해제 확인

 

namenode가 나타나지 않는 경우:

hdfs-site.xml 확인

 

datanode가 나타나지 않는 경우:

hdfs-site.xml 확인

 

resourcemanager, nodemanager가 나타나지 않는 경우:

yarn-site.xml 확인

 

journalnode가 나타나지 않는 경우:

hdfs-site.xml 확인

 


 

이렇게 하둡 고가용성(HA) 모드 클러스터가 구축되었습니다. 축하드립니다!!ㅎㅎㅎ

다음 포스팅에서는 하둡을 구축하였으니 맵리듀스(mapreduce)를 통해 워드카운트 예제를 실행하여 정상 작동 하는지 테스트 해보겠습니다!

 

감사합니다!!

 

developer-woong.tistory.com/23

 

(하둡 설치) ep10_하둡 맵리듀스, 워드카운트 예제 (hadoop mapreduce wordcount)

* 본 가이드는 필요 파일과 이전 포스팅까지 작업이 완료되었다는 가정하에 진행 주요 스펙 호스트OS - windows10 home 게스트OS들 - centOS7 Hadoop - 3.1.0 Zookeeper - 3.4.10 jdk - 1.8.0_191 MobaXterm을 활..

developer-woong.tistory.com

 

반응형

+ Recent posts