192.168.10.1(mast01), 192.168.10.2(mast02), 192.168.10.3(mast03), 192.168.10.4(work01), 192.168.10.5(work02), 192.168.10.6(work03), 192.168.10.4(work04)의 서버들이 각각 자신의 호스트명을 등록하고 다른 서버들과

호스트명으로 통신하고 싶다면

아래처럼 작성하면 됩니다. (모든 서버)

 

vi /etc/hosts

 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

192.168.10.1    mast01

192.168.10.2    mast02

192.168.10.3    mast03

192.168.10.4    work01

192.168.10.5    work02

192.168.10.6    work03

192.168.10.4    work04

작성 및 저장 후 아래 명령어 실행

hostnamectl set-hostname mast01 <- 서버마다 자신의 호스트명으로 변경

 

호스트명 확인

hostname

 

 

 

반응형

'Linux' 카테고리의 다른 글

centos linux 자주 쓰는 명령어 정리  (0) 2023.07.18
centos linux 고정 IP 설정  (0) 2023.07.18
centos linux 계정 추가  (0) 2023.07.18
ssh 포트 변경  (0) 2023.07.17
linux 방화벽해제, 타임존변경  (0) 2023.07.17

adduser [계정명]

passwd [계정명]

 

후 원하는 비밀번호 입력 -> 인증을 위해 한 번 더 입렵

유저 생성 완료

 

반응형

'Linux' 카테고리의 다른 글

centos linux 고정 IP 설정  (0) 2023.07.18
centos linux 호스트네임 등록  (0) 2023.07.18
ssh 포트 변경  (0) 2023.07.17
linux 방화벽해제, 타임존변경  (0) 2023.07.17
linux selinux 비활성화  (0) 2023.07.17

vi /etc/ssh/sshd_config

 

17번째줄

 

# Port 22 -> 주석처리

Port 2222 -> 추가

 

systemctl restart sshd

 

여러 포트를 사용하고싶으면

 

Port 22

Port 2222

 

두 줄 기입해도됩니다.

 

 

반응형

'Linux' 카테고리의 다른 글

centos linux 호스트네임 등록  (0) 2023.07.18
centos linux 계정 추가  (0) 2023.07.18
linux 방화벽해제, 타임존변경  (0) 2023.07.17
linux selinux 비활성화  (0) 2023.07.17
ssh 키 교환 방법  (0) 2023.07.17

centos7 기준입니다

 

방화벽상태확인

    firewall-cmd --state

방화벽 해제

    systemctl stop firewalld.service

    systemctl disable firewalld.service

 

타임존확인

    date

타임존 변경

    timedatectl set-timezone Asia/Seoul

 

가끔 타임존이 안먹힐때는

timedatectl set-time "2023-07-24"

timedatectl set-time "10:30:30"

이런식으로 수동으로 맞춰주시면됩니다.

반응형

'Linux' 카테고리의 다른 글

centos linux 호스트네임 등록  (0) 2023.07.18
centos linux 계정 추가  (0) 2023.07.18
ssh 포트 변경  (0) 2023.07.17
linux selinux 비활성화  (0) 2023.07.17
ssh 키 교환 방법  (0) 2023.07.17

centos7 기준입니다.

 

vi /etc/sysconfig/selinux

 

.....

.....

SELINUX=disabled

.....

.....

 

수정 후 reboot 해야 적용됩니다.

반응형

'Linux' 카테고리의 다른 글

centos linux 호스트네임 등록  (0) 2023.07.18
centos linux 계정 추가  (0) 2023.07.18
ssh 포트 변경  (0) 2023.07.17
linux 방화벽해제, 타임존변경  (0) 2023.07.17
ssh 키 교환 방법  (0) 2023.07.17

각 솔루션별 버전 호환표를 기록하기위해 글을 작성합니다.

개인적으로 테스트할 환경이며, 이슈있을 시 계속 업데이트할 예정입니다.

 

조언 및 충고는 언제나 감사합니다.

아래는 각 솔루션별 표입니다.

 

솔루션 버전
hadoop 3.3.5
spark 3.2.3
hive 3.1.3
tez 0.10.2
solr 8.11.2
ranger 2.4.0
atlas 2.3.0
hbase 2.3.7
zookeeper 3.5.10
trino 435
sqoop 1.4.7
zeppelin 0.10.1
oozie 5.2.1
nifi 1.12.0
hue 4.2.0
kafka 2.8.2

hadoop 설치

https://developer-woong.tistory.com/36

 

hadoop 설치 (정리모음버전)

centos7 기준입니다. 6대의 서버가 준비되어있고, ntp설정, ip설정 및 호스트네임 등록, jdk 설정, zookeeper 설치가 완료됨을 가정합니다. https://developer-woong.tistory.com/37 centos linux ntp enable centos7 기준입니

developer-woong.tistory.com

spark 설치

https://developer-woong.tistory.com/49

 

Apache Spark 설치

centos7 기준입니다. 호스트명이 mast01인 서버에 설치할 예정이고, 실행은 hadoop 유저, 히스토리서버 역시 mast01서버에 띄우도록 하겠습니다. mast01: master work01~03: worker hadoop이 설치되어있음을 가정합

developer-woong.tistory.com

 

hive 설치

https://developer-woong.tistory.com/44

 

Apache Hive 설치

centos7 기준입니다. PostgreSQL, hadoop이 설치됨을 가정합니다. 서버는 호스트네임기준 mast02서버에 설치할 예정이고, PostgreSQL 역시 mast02서버에 설치됨을 가정합니다. hive폴더는 hadoop 유저권한, hive met

developer-woong.tistory.com

 

tez 설치

https://developer-woong.tistory.com/60

 

apache hive 엔진 tez 교체

centos7 기준입니다. mast02서버에 hive가 실행중이고, tez 빌드가 마무리되었음을 가정합니다. 본 포스팅 기준으로는 tez빌드 파일 역시 mast02서버에 존재합니다. 조언과 충고 감사합니다. https://develope

developer-woong.tistory.com

 

solr 설치

https://developer-woong.tistory.com/92

 

solr) Solr 8.11.2 설치

centos7 기준입니다. zookeeper가 설치되었음을 가정합니다. (mast01,mast02,mast03) https://developer-woong.tistory.com/39 Zookeeper 설치 centos7 기준입니다. mast01~03 3대의 서버에 주키퍼를 설치하겠습니다. 계정은 hado

developer-woong.tistory.com

 

ranger 설치

https://developer-woong.tistory.com/100

 

ranger 설치, 플러그인 연동 링크 모음

ranger 설치 링크 모음입니다. ranger 빌드 https://developer-woong.tistory.com/95 ranger) Apache Ranger 2.4.0 빌드 centos7 기준입니다. 호스트명이 mast02인 서버에서 진행하였습니다. ranger 설치 전 환경에 맞게 우선

developer-woong.tistory.com

 

atlas 설치

- 포스팅예정

 

hbase 설치

https://developer-woong.tistory.com/54

 

Apache Hbase 설치

centos7 기준입니다. 백업 마스터 2대를 둔 hbase cluster를 설치하도록 하겠습니다. hadoop, zookeeper가 설치되어있음을 가정합니다. 실행 유저:hadoop mast01: hbase master mast02: hbase master mast03: hbase master work01:r

developer-woong.tistory.com

 

zookeeper 설치

https://developer-woong.tistory.com/39

 

Zookeeper 설치

centos7 기준입니다. mast01~03 3대의 서버에 주키퍼를 설치하겠습니다. 계정은 hadoop입니다. 1. 압축 파일 다운로드 및 해제 action server: mast01, mast02, mast03 user: root pwd: /opt/apps/ cmd: wget https://archive.apache.o

developer-woong.tistory.com

trino 설치

https://developer-woong.tistory.com/90

 

Trino) Trino 435 설치

centos7 기준입니다. coordinator는 mast01, worker는 work01,02,03 서버 환경으로 설치하겠습니다. 1. openJDK17 설치, Python 버전 설정 action server: mast01, work01, work02, work03 user: root pwd: /opt/apps/ cmd: # 파일다운로드 w

developer-woong.tistory.com

 

sqoop 설치

https://developer-woong.tistory.com/82

 

Sqoop) Sqoop 1.4.7 설치

centos7 기준입니다. 호스트명이 mast01인 서버에서 설치를 진행하였습니다. 실행권한은 hadoop 유저이며, java 환경변수 등록, hadoop, hive, zookeeper, hbase가 설치되어있음을 가정합니다. 1. Sqoop 설치 파일

developer-woong.tistory.com

 

zeppelin 설치

https://developer-woong.tistory.com/88

 

zeppelin) Zeppelin 0.10. 설치

centos7 기준입니다. 호스트명이 mast01인 서버에서 설치진행하였습니다. 실행 유저는 hadoop 입니다. 1. zeppelin 설치 파일 압축 해제 및 권한 설정 action server: mast01 user: root pwd: - cmd: # 경로 이동 cd /opt/a

developer-woong.tistory.com

 

oozie 설치

- 포스팅예정

 

nifi 설치

https://developer-woong.tistory.com/47

 

Apache NiFi 설치

centos7 기준입니다. 호스트명이 mast03인 서버에 NiFi - 1.12.0 standalone모드로 설치하도록 하겠습니다. 실행권한은 hadoop유저이며, java 환경변수가 설정되어있음을 가정합니다. https://developer-woong.tistory.

developer-woong.tistory.com

 

hue 설치

- 포스팅예정

 

kafka 설치

https://developer-woong.tistory.com/52

 

Apache Kafka 설치

centos7 기준입니다. 실행 유저는 hadoop, 버전은 2.8.2로 설치할 것이며, mast01,02,03 3대의 서버에 cluster mode로 설치할 예정입니다. zookeeper가 설치되어있음을 가정하고, mast01,02,03서버에 zookeeper가 설치

developer-woong.tistory.com

 

반응형

ssh-keygen 명령어를 실행하면 실행한 계정의 홈 디렉토리에 id_rsa.pub파일이 생성된다.

(경로: ~/.ssh/id_rsa.pub)

 

명령어:

    ssh-copy-id -i [id_rsa.pub경로] [user]@[hostname or ip] -p [ssh port]

    -p 옵션은 디폴트가 22이다

 

ex. 호스트명이 mast01,mast02이고 ssh 포트가 2222인 각 서버간 root계정끼리의 키 교환

 

mast01

    1. ssh-keygen

    2. ssh-copy-id -i ~/.ssh/id_rsa.pub  root@mast02 -p 22002

 

mast02

    1. ssh-keygen

    2. ssh-copy-id -i ~/.ssh/id_rsa.pub  root@mast01 -p 22002

 

반응형

'Linux' 카테고리의 다른 글

centos linux 호스트네임 등록  (0) 2023.07.18
centos linux 계정 추가  (0) 2023.07.18
ssh 포트 변경  (0) 2023.07.17
linux 방화벽해제, 타임존변경  (0) 2023.07.17
linux selinux 비활성화  (0) 2023.07.17

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

 

주요 스펙

호스트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: 명령을 수행할 경로

 

지난 포스팅까지의 과정들로 하둡 고가용성(HA)모드 클러스터를 구축하였습니다.

이번 시간엔 구축된 하둡의 맵리듀스(mapreduce)로 워드카운트 예제를 진행해보도록 하겠습니다.

 


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

Action Server: nn01, rm01, jn01

User: zookeeper

Pwd: /home/zookeeper

# 경로 이동
cd zookeeper-3.4.10

# 주키퍼 서버 실행
./bin/zkServer.sh start

 


 

하둡 클러스터(hadoop cluster)실행 시 (실행 중이라면 skip)

* 실행 서버 / 설명

# 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

 * 위 실행 과정은 하둡 클러스터 설치 후 최초 1회 실행을 마치고 두 번째 이상 실행부터 적용되는 실행순서이다.

최초 실행 시에는 format하는 과정이 있으므로 만약 하둡 설치 후 최초 서버 실행이라면 아래 링크를 참조

developer-woong.tistory.com/22

 

(하둡 설치) ep09_하둡(hadoop) 실행과 종료, 트러블 슈팅

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

developer-woong.tistory.com

 


각 하둡 계정의 실행 서버 확인 (Jps확인)

Action Server: all

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0

# 실행 중인 서버 확인
jps

nn01

rm01

 

jn01

 

dn01

 

dn02

 

dn03

 


HDFS 디렉토리 생성 및 파일 추가

* 하둡 설정 파일 중 하나인 hadoop-env.sh를 워드카운트 예제에 사용

 

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# hdfs 상의 루트 디렉토리 조회
hdfs dfs -ls / 

# /user 디렉토리 생성
hdfs dfs -mkdir /user

# /user 디렉토리 하위에 /hadoop 디렉토리 생성
hdfs dfs -mkdir /user/hadoop

# /user/hadoop 디렉토리 하위에 /conf 디렉토리 생성
hdfs dfs -mkdir /user/hadoop/conf

# 워드카운트 예제에 사용할 hadoop-env.sh 파일을 HDFS의 /user/hadoop/conf 디렉토리로 이동
hdfs dfs -put /home/hadoop/hadoop-3.1.0/etc/hadoop/hadoop-env.sh /user/hadoop/conf/

# 파일 이동 확인
hdfs dfs -ls /user/hadoop/conf


맵리듀스(MapReduce) 확인

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# wordcount 실행
# yarn jar [jar파일 경로] wordcount [워드카운트를 실행할 파일이 위치한 폴더명] [워드카운트 결과를 저장할 폴더명]
yarn jar /home/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar
wordcount conf output

# wordcount 결과 파일 생성 조회
hdfs dfs -ls /user/hadoop/output/


워드카운트(WordCount) 확인

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# wordcount 결과 확인 (파일의 단어 갯수)
hdfs dfs -cat /user/hadoop/output/part-r-00000


하둡 클러스터(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

 


주키퍼(zookeeper) 서버 종료

Action Server: nn01, rm01, jn01

User: zookeeper

Pwd: /home/zookeeper

./bin/zkServer.sh stop

이 것으로 서버 6대를 활용한 하둡 고가용성(HA) 모드 클러스터를 구축하고 워드카운트 예제까지 실행하며 정상 동작하는 것을 확인하였습니다!!

 

앞으로는 NIFI, HIVE등의 하둡에 밀접한 관계를 가진 프레임워크 혹은 프로그램들과 연동하며 효율적인 빅데이터 활용을 위해 공부해나가는 포스팅을 하도록 하겠습니다.

 

긴 글 읽어주셔서 너무나도 감사드리고 하둡 설치 가이드 중 잘못 설명되어있다면 피드백은 언제나 감사드리고

에러가 나타난다면 함께 해결해나가도록 하겠습니다!! 너무 감사드립니다 ㅎㅎㅎ

반응형

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

 

주요 스펙

호스트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

 

반응형

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

 

주요 스펙

호스트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) 설치 및 환경 설정이 끝마친 상태이고 ep06 과정으로 각 서버 6대의 hadoop계정끼리의 ssh 통신이 가능한 후 본 과정을 진행해주시길 바랍니다.

developer-woong.tistory.com/19

 

(하둡 설치) ep06_하둡(hadoop), 주키퍼(zookeeper) 계정 생성 및 권한 설정, ssh 통신

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

developer-woong.tistory.com

하둡이란?:

developer-woong.tistory.com/7

 

(하둡 기초) ep02_하둡에코시스템(Hadoop EcoSystem)

하둡의 역사에 대해 궁금하다면?! developer-woong.tistory.com/6 (하둡완벽설치!) ep01_하둡(Hadoop)의 역사, 등장 배경 데이터 시대 2013, 2014년 기준으로 뉴욕증권거래소에서는 하루 4.5테라바이트의 데이터

developer-woong.tistory.com


 

* 주키퍼(zookeeper) 설치 때와 마찬가지로 nn01서버에서 먼저 설치 후 환경 설정 및 재압축하여 다른 5대의 서버에 배포하는 방식으로 진행

 

 

하둡(hadoop)계정으로 접속

Action Server: all

User: root

Pwd: /root

# root계정에서 hadoop계정으로 전환
su - hadoop

 


하둡(hadoop)설치 (nn01서버만)

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# 하둡 설치 (본 가이드에서는 3.1.0v)
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0.tar.gz

 


하둡(hadoop) 압축파일 해제

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# 압축 해제
tar xvfz hadoop-3.1.0.tar.gz

# 확인
ls

 


하둡(hadoop) 설정 파일 경로 이동

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# 경로 변경
cd hadoop-3.1.0/etc/hadoop

 


 

하둡(hadoop) 파일 환경 설정

( * workers, core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, hadoop-env.sh)

 

1. workers
노드로 사용할 호스트 명을 입력한다.(=hive v2-slave)

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi wokers

# localhost - 주석 추가
dn01
dn02
dn03

1. core-site.xml
hdfs와 맵리듀스에서 공통으로 사용할 환경을 설정한다.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://NNHA</value>
        </property>
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>nn01:2181,rm01:2181,jn01:2181</value>
        </property>
</configuration>

3. hdfs-site.xml
hdfs에서 사용할 환경을 설정한다.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi hdfs-site.xml

<configuration>
        <property>
                <name>dfs.client.failover.proxy.provider.NNHA</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/dfs/namenode</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/dfs/datanode</value>
        </property>
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/dfs/journalnode</value>
        </property>
        <property>
                <name>dfs.nameservices</name>
                <value>NNHA</value>
        </property>
        <property>
                <name>dfs.ha.namenodes.NNHA</name>
                <value>nn01,rm01</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.NNHA.nn01</name>
                <value>nn01:8020</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.NNHA.rm01</name>
                <value>rm01:8020</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.NNHA.nn01</name>
                <value>nn01:9870</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.NNHA.rm01</name>
                <value>rm01:9870</value>
        </property>
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://nn01:8485;rm01:8485;jn01:8485/NNHA</value>
        </property>
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
        </property>
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/home/hadoop/.ssh/id_rsa</value>
        </property>
</configuration>

4. mapred-site.xml
맵리듀스에서 사용할 환경을 설정한다.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

5. yarn-site.xml
yarn에서 사용할 환경을 설정한다.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/yarn/nm-local-dir</value>
        </property>
        <property>
                <name>yarn.resourcemanager.fs.state-store.uri</name>
                <value>/yarn/system/rmstore</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>rm01</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>rm01:8032</value>
        </property>
        <property>
                <name>yarn.web-proxy.address</name>
                <value>0.0.0.0:8089</value>
        </property>
        <property>
                <name>yarn.application.classpath</name>
                <value>
                        /home/hadoop/hadoop-3.1.0/etc/hadoop,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/common/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/common/lib/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/hdfs/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/hdfs/lib/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/lib/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/yarn/*,
                        /home/hadoop/hadoop-3.1.0/share/hadoop/yarn/lib/*
                </value>
        </property>
</configuration>

6. hadoop-env.sh
jdk와 pids의 경로를 설정한다.

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

vi hadoop-env.sh

# vi 편집기 표준 모드 상태에서 (esc누르면 표준 모드)

# 원하는 줄의 숫자를 타이핑 후(보이진 않음) Shift + G 시 해당 줄로 이동
# 54번째 줄
export JAVA_HOME=/opt/apps/jdk8/ # 주석 해제 후 입력

# 211번째 줄
export HADOOP_PID_DIR=/pids # 주석 해제 후 입력

 


하둡(hadoop)파일 재압축을 위해 경로 이동

Action Server: nn01

User: hadoop

Pwd: /home/hadoop/hadoop-3.1.0/etc/hadoop

# 경로 변경
cd ~ (pwd -> /home/hadoop)

 


하둡(hadoop)파일 재압축

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# hadoop.tar.gz이라는 이름으로 재압축
tar cvfz hadoop.tar.gz hadoop-3.1.0

# 확인
ls

 


하둡(hadoop)파일 배포

Action Server: nn01

User: hadoop

Pwd: /home/hadoop

# 다른 5대의 서버에 배포
# 에러 시 ssh 연결 확인

scp hadoop.tar.gz hadoop@rm01:/home/hadoop
scp hadoop.tar.gz hadoop@jn01:/home/hadoop
scp hadoop.tar.gz hadoop@dn01:/home/hadoop
scp hadoop.tar.gz hadoop@dn02:/home/hadoop
scp hadoop.tar.gz hadoop@dn03:/home/hadoop

하둡(hadoop)재압축 파일 압축 해제

Action Server: rm01, jn01, dn01, dn02, dn03

User: hadoop

Pwd: /home/hadoop

# hadoop계정으로 전환 후 작업
su - hadoop

# 배포받은 재압축 파일 압축 해제
tar xvfz hadoop.tar.gz

 


root계정으로 전환 (모든 서버)

Action Server: all

User: hadoop

Pwd: /home/hadoop

# 모든 서버에서 실행, 하둡 환경변수 작업을 위한 계정 전환
exit

 


 

하둡(hadoop) 환경변수 설정 (모든 서버)

Action Server: all

User: root

Pwd: /root

# 하둡 환경변수 설정

vi /etc/profile.d/hadoop.sh

export HADOOP_HOME=/home/hadoop/hadoop-3.1.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

# 작성 내역 적용
source /etc/profile.d/hadoop.sh


 

이 것으로 하둡 실행은 위한 설정을 끝마쳤습니다.

다음 포스팅에서는 하둡을 직접 실행해보도록 하겠습니다.

감사합니다!!

 

developer-woong.tistory.com/22

 

(하둡 설치) ep09_하둡(hadoop) 실행과 종료, 트러블 슈팅

* 본 가이드는 필요 파일과 이전 포스팅까지 작업이 완료되었다는 가정하에 진행 주요 스펙 호스트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