* 본 가이드는 필요 파일과 이전 포스팅까지 작업이 완료되었다는 가정하에 진행
주요 스펙
호스트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
하둡이란?:
* 주키퍼(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
'BigData > Hadoop' 카테고리의 다른 글
(하둡 설치) ep10_하둡 맵리듀스, 워드카운트 예제 (hadoop mapreduce wordcount) (2) | 2021.02.25 |
---|---|
(하둡 설치) ep09_하둡(hadoop) 실행과 종료, 트러블 슈팅 (2) | 2021.02.25 |
(하둡 설치) ep07_주키퍼(zookeeper)설치, 환경 설정 및 실행 (0) | 2021.02.25 |
(하둡 설치) ep06_하둡(hadoop), 주키퍼(zookeeper) 계정 생성 및 권한 설정, ssh 통신 (0) | 2021.02.25 |
(하둡 설치) ep05_MobarXterm 원격 ssh접속 및 STFP 활용 centOS7 java(jdk) 환경 설정 (0) | 2021.02.25 |