* 본 가이드는 필요 파일과 이전 포스팅까지 작업이 완료되었다는 가정하에 진행
주요 스펙
호스트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
'BigData > Hadoop' 카테고리의 다른 글
hadoop 설치 (정리모음버전) (2) | 2023.07.21 |
---|---|
(하둡 설치) ep10_하둡 맵리듀스, 워드카운트 예제 (hadoop mapreduce wordcount) (2) | 2021.02.25 |
(하둡 설치) ep08_하둡(hadoop)설치 및 환경 설정 (0) | 2021.02.25 |
(하둡 설치) ep07_주키퍼(zookeeper)설치, 환경 설정 및 실행 (0) | 2021.02.25 |
(하둡 설치) ep06_하둡(hadoop), 주키퍼(zookeeper) 계정 생성 및 권한 설정, ssh 통신 (0) | 2021.02.25 |