본문 바로가기
BigData/Hadoop

[BigData] 완전 분산 하둡 클러스터(hadoop cluster)구축하기(4개 노드) 7. 하둡 설치, 배포, 환경설정, 실행하기

by 스파이디웹 2021. 8. 12.
728x90

이번 포스트에는 hadoop 설치, 배포, 환경설정, 실행하기를 해보겠습니다.

 

아직 zookeeper 설치,환경설정,실행을 완료해보지 못했다면 아래의 링크를 참고해주세요.

https://spidyweb.tistory.com/271

 

[BigData] Centos-7 fully distributed hadoop cluster 구성하기(하둡 클러스터) 6. Zookeeper 설치, 환경설정, 실행

이번 포스트에는 zookeeper 를 설치하고, 환경설정하여 실행 해보겠습니다. 아직 zookeeper 및 hadoop 계정 생성과 권한 설정을 완료하지 못했다면 아래의 링크를 참고해주세요. https://spidyweb.tistory.com/27

spidyweb.tistory.com


하둡 구성 스펙

호스트OS - windows10 home

게스트OS들 - centOS7

Hadoop - 3.1.2

Zookeeper - 3.4.10

jdk - 1.8.0_191

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

 

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

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

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

datanode1: 저널노드 역할, 데이터 노드 역할

datanode2: 데이터 노드 역할

 

총 4개의 노드를 이용하여 HA(고가용성)구성을 한 하둡 클러스터를 구성 해보겠습니다.


1. hadoop 설치하기(namenode1만)

-namenode1에만 설치하여 나머지 노드들에 배포하는 방식으로 하겠습니다.

 

1) hadoop 계정으로 접속

su hadoop

cd ~

 

2) hadoop 다운로드

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0.tar.gz

3) hadoop폴더 압축 해제

tar xvzf hadoop-3.1.0.tar.gz

4) 하둡 파일 설정 하기

cd /hadoop-3.1.0/etc/hadoop

 

1. workers

-slave로써 사용할 호스트명을 입력

 

nano workers

 

기존에 있던 localhost는 주석처리,

rmnode1

datanode1

datanode2 추가

2. core-site.xml

-hdfs와 맵리듀스에서 사용할 공통적인 환경을 설정

 

nano core-site.xml

아래와 같이 설정 후 저장

3. hdfs-site.xml

-hdfs에서 사용할 환경을 설정

 

nano hdfs-site.xml

4. mapred-site.xml

-맵리듀스에서 사용할 환경을 설정

 

nano mapred-site.xml

5. yarn-site.xml

-yarn에서 사용할 환경을 설정

 

nano yarn-site.xml

6. hadoop-env.sh

-jdk와 pids 경로를 설정

 

ctrl +w 로 export JAVA_HOME 치고 찾아가서 주석 제거후 jdk 경로 입력

 

마찬가지로 export HADOOP_PID_DIR 찾아가서 pid 경로 입력


2. hadoop 재 압축하고 배포하기(namenode1에서만)

1) hadoop 재 압축

cd ~

tar cvfz hadoop.tar.gz hadoop-3.1.0

2)hadoop 배포

scp hadoop.tar.gz hadoop@rmnode1:/home/hadoop

scp hadoop.tar.gz hadoop@datanode1:/home/hadoop

scp hadoop.tar.gz hadoop@datanode2:/home/hadoop

3) hadoop 폴더 압축 풀기(rmnode1,datanode1,datanode2에서만)

tar xvfz hadoop.tar.gz


3. hadoop 환경 변수 설정(4개 노드 전부)

1) root 계정으로 접속

su root

 

2) /etc/profile 파일 수정

nano /etc/profile

3) /etc/profile 파일 적용

source /etc/profile

 


4. zookeeper 실행 및 hadoop 실행

1) zookeeper 실행(namenode1,rmnode1,datanode1만.실행 중이라면 건들지 않습니다.)

su zookeeper

cd ~

cd zookeeper-3.4.10

./bin/zkServer.sh start

2) zookeeper 장애 컨트롤러 초기화(namenode1만 최초 한번만 실행)

su hadoop

cd ~

cd hadoop-3.1.0

./bin/hdfs zkfc -formatZK

3) journal node를 실행하기(namenode1, rmnode1, datanode1에서만)

./bin/hdfs --daemon start journalnode

4)namenode 초기화(namenode1만 최초 한번만 실행)

./bin/hdfs namenode -format mycluster

5)active namenode 실행(namenode1만)

./bin/hdfs --daemon start namenode

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

./bin/hdfs --daemon start zkfc

7)데이터 노드 실행(namenode1만)

hdfs --workers --daemon start datanode

8)standby namenode 포맷(rmnode1만 최초 한번만 실행)

./bin/hdfs namenode -bootstrapStandby

9) standby namenode 실행(rmnode1만)

./bin/hdfs --daemon start namenode

10) standby namenode용 주키퍼 장애 컨트롤러(zkfc)실행(rmnode1만)

./bin/hdfs --daemon start zkfc

11)yarn cluster 실행(rmnode1만)

./sbin/start-yarn.sh

12)active stanby namenode 확인(namenode1만)

./bin/hdfs haadmin -getServiceState namenode1

./bin/hdfs haadmin -getServiceState rmnode1

13) 각 노드 jps로 확인

jps

 

14) 이후 작업 start-all.sh 와 stop-all.sh로 전부 실행시키고 끄기

stop-all.sh

start-all.sh

(namenode1)

(rmnode1)

(datanode1)

(datanode2)

이것으로 HA(고가용성)구성으로 하둡 클러스터 구축하기를 완성했습니다.

 


현재 데이터노드가 start-all.sh로 뜨지않는 점, hdfs --workers --daemon start로 뜨지않는 점, hdfs dfs 명령어가 먹히지않는 에러가 있어서 수정예정입니다.(2021-10-15)→ 수정완료

(완벽하게 이해하고 수정한 내용은 아니라 더 알게되는 내용이 있으면 덧붙여 수정하겠습니다.)

 

org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs 와 같은 에러로 datanode도 뜨지않고 rmnode1과도 format시킬때 연결이 안된다고 log error가 떴었는데, 대부분 하둡이 비정상적으로 종료되었을때 생기는 에러라고 한다.

 

# 하둡에서 클러스터를 세팅한 후, 네임노드를 reformat할 경우 데이터노드는 예전 네임노드이 reference를 참조하기 때문에 그냥 단순하게 네임노드를 삭제하면 된다.

 

 

 

이를 위해 모든걸 초기화 해주겠습니다.

1) stop-all.sh 로 하둡 종료

2) tmp/hadoop-(자기가설정한것)/dfs 내 data 디렉토리 삭제

위와 같은 에러 로그도 있었는데, /dfs/journalnode/mycluter가 비어있어야 하는 것 같아, 디렉토리를 삭제해주었습니다.

3) 위의 hadoop 키는 순서들을 다시 실행(namenode format을 다시 하는 개념)

 

*2021-12-06 spark on yarn을 위한 hadoop config cluster 수정

728x90

댓글