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

 

주요 스펙

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