본문 바로가기
빅데이터 분석 환경 구축

Intro. Hadoop 기반 HA 시스템의 구조

by pavi03 2022. 4. 25.

컴퓨터공학부 4학년 빅데이터 수업에서 Hadoop 기반 HA 시스템의 구조를 구축하는 실습을 하였습니다.

 

AWS EC2, AMI를 이용하여 구축합니다.

 

구축 프로세스를 시험에 내신다고 해서 정리겸 기록을 해보겠습니다.

 

 

1. 기본 구조를 다음과 같이 구성해보겠습니다.

정상 시점

 

에러 발생 시점

 

- 총 NameNode 2개, DataNode 3개인 환경을 구축합니다.

NameNode : nn1, nn2

DataNode : dn1, dn2, dn3

 

- 초기 실행 시점에 nn1은 Active, nn2는 Stanby 상태입니다. (jps 명령어로 확인 가능)

만약 nn1에서 에러가 발생하여 죽는다면, 이를 감지하여 nn2가 Active 상태로 전환해 nn1의 일을 대신 수행합니다.

 

 

2. 기본 구조에서 확장된 HA 구조입니다.

- DataNode는 3개를 사용합니다.

- 서버의 수를 줄이기 위해, nn1, nn2, dn1을 저널노드로 사용하거나,

개념적으로 프로세스가 다르므로 저널노드 3개와 데이터노드 1개를 분리하여 구축할 수 있습니다.  ... (????? 이해 못함)

 

 

2-1. 실행 순서

(1) Zookeeper 실행

 - (nn1, nn2, dn1) sudo /usr/local/zookeeper/bin/zkServer.sh start

 

(2) Zookeeper 상태 확인

 - (nn1, nn2, dn1) sudo /usr/local/zookeeper/bin/zkServer.sh status

 

(3) Zookeeper hdfs 공간 포맷

 - cd /usr/local/zookeeper

 - ./bin/zkCli.sh

 

(4) Hadoop 클러스터 확인]

 - # ls /hadoop-ha

 - ['my-hadoop-cluster'가 출력된다면 quit으로 빠져나오기]

 

(5) Journalnode 실행

 - (nn1, nn2, dn1) hdfs --daemon start journalnode

 

(6) NameNode 포맷

 - (nn1) hdfs namenode -format

 

 + NameNode 포맷이 처음이 아니라면!

 - /usr/local/hadoop/data/name 폴더 삭제

 - /usr/local/hadoop/data/data 폴더도 삭제

 ( - Namenode, data node 간에 VERION 이 일치하지 않으면 에러 발생 )

 

(7) NameNode (active) daemon start

 - (nn1) hdfs --daemon start namenode

 

(8) NameNode (stanby) start

 - (nn2) hdfs namenode -bootstrapStandby

 - [nn2는 active nn1의 마스터 데이터를 copy해서 가져온다.]

 

(9) Hadoop 실행 ( + DFSZKFailoverController 실행)

 - (nn1) start-dfs.sh

 

(10) Yarn 실행

 - (nn1) start-yarn.sh

 

(11) historyserver 실행

 - mapred --daemon start historyserver

 

(12) Spark server 실행

 - $SPARK_HOME/sbin/start-all.sh

 

(13) Zeppelin 실행

 - /usr/local/zeppelin/bin/zeppelin-daemon.sh start

 - Zeppelin start