IT 꿈나무의 일상

Hadoop 완전 분산 모드로 설치하기 (1) 본문

IT 관련

Hadoop 완전 분산 모드로 설치하기 (1)

viera 2021. 3. 1. 23:08
반응형

Hadoop 설치 (완전분산모드)

다음은 하둡 완전분산모드 설치하는 방법입니다.

 

 

# 환경구성

- 하둡을 설치하기 전에 모든 서버는 JDK설치, hadoop실행계정 생성, ssh 인증같은 기본적인 환경설정이 완료되어 있어야합니다.

 

 

## 설치순서

0. 자바설치 (두개의 서버 계정에)

1. hadoop 계정 생성

2. 통신 라이브러리 설치 (ssh, rsync)

3. hadoop 바이너리 설치

4. 하둡설정변경

5. protocol buffer 설치

6.  fully-distributed configuration 환경 구성

 

 

0. 자바설치

바이너리 받아서 서버에 각각 설치

 

 

1. hadoop 계정 생성

각 서버에 동일한 이름으로 hadoop 설치 할 계정을 생성한다.

(계정 이름은 동일한 편이 다루기 쉽다.)

 

[Master]                              # Master 서버
groupadd hadoop
useradd -g hadoop -m hadoop
passwd 비밀번호


[Slave1]                              # Slave 서버
groupadd hadoop
useradd -g hadoop -m hadoop
passwd 비밀번호

** 성능이 더 좋은 PC를 slave 서버로 쓰는게 좋습니다.

 

 

 

2. 통신을 위한 라이브러리 설치

생성한 계정에 각각 라이브러리를 설치해 줍니다.

 

1) ssh 설치

- 각 OS에 모두 설치 후 방화벽을 내려 줍니다.

# 참고 : https://blog.miyam.net/56
# ssh확인 방법 : https://blog.dalso.org/linux/cent-os/4349
yum install openssh-server openssh-clients openssh-askpass
vi /etc/ssh/sshd_config

Port 22                                # Port 22 부분 주석 해제

firewall-cmd --permanent --zone=public --add-port=22/tcp          # 방화벽 내림 

 

2) rsync 설치

yum install rsync

 

 

 

3. hadoop binary download

 

 

0) hadoop계정안에 hadoop 폴더 생성

 

1) 바이너리 받는 사이트 : https://archive.apache.org/dist/hadoop/core/

- wget을 이용하여 hadoop-2.8.3.tar.gz 다운로드

wget archive.apache.org/dist/hadoop/core/hadoop-2.8.3/hadoop-2.8.3.tar.gz

 

2) 바이너리 권한 부여

chmod 777 hadoop-2.8.3.tar.gz

 

 

3) 압축해제

tar xvfz hadoop-2.8.3.tar.gz

 

4) 파일권한부여

chmod 777 -R hadoop-2.8.3

 

 

5) 환경변수 추가 (모든 OS에 추가)

vim .bash_profile           # .bash_profile 파일에 환경설정


export JAVA_HOME=/usr/local/lib/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin
export CLASS_PATH="."
export LD_LIBRARY_PATH=/usr/local/lib
export HADOOP_CMD=/home/hadoop/hadoop/hadoop-2.8.3/bin/hadoop
export HADOOP_STREAMING=/home/hadoop/hadoop/hadoop-2.8.3/share/hadoop/tools/lib/hadoop-streaming-2.8.3.jar
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/jdk1.8.0_261/lib/amd64

 

6) 파일편집

#Master ip추가

vim /etc/hosts.allow           # 해당 파일에 Master ip추가

sshd: Master ip (실제 IP주소를 적어주세요) 
#모든 컴퓨터에 ip와 컴퓨터 이름 등록

vim /etc/hosts

192.168.151.165 master
192.168.151.166 slave1
# 파일편집

vim /etc/ssh/sshd_config           # 해당 파일에 아래 설정 입력

AuthorizedKeysFile %h.ssh/authorized_keys

 

 

4. 하둡설정변경 (완전 분산모드)

- 참고 사이트 :  https://fniko.tistory.com/entry/Hadoop-완전-분산-모드

 

1) 키 생성

[master only]

- directory 생성 후 키 생성 or home dir밑에 .ssh파일을 만든 후 공개키를 생성

mkdir ~/.ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa

--> 결과값 : id_rsa , id_rsa.pub

or

ssh-keygen -t rsa

 

 

2) 키확인

more /home/hadoop/.ssh/id_rsa.pub  

 

3) master의 공개 키를 모든 salve1에 복사 (scp 명령어 사용)

scp ~/.ssh/id_rsa.pub hadoop@slave1:~/master_key    # 유저명/ip명
scp ~/.ssh/id_rsa.pub root@slave1:~/master_key  

 

4) slave1으로 로그인해 master키를 인증된 키로 설정

ssh slave1                                # slave1로 접속
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/master_key ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

 

5) 비밀번호없이 로그인

ssh slave1 --> 성공!

 

 

5. Protocol Buffer 설치

- 이기종 서버사이 데이터를 주고 받을때 바이너리 형식으로 통신하는 서비스 제공

 

1) 바이너리파일 받기

# root 계정에서 다운로드

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

 

2) 압축풀기 & 실행

mv protobuf-2.5.0.tar.gz /usr/local/
cd /usr/local
tar xvfz protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make install

## protocol buffer은 compile이 필요하여 make를 통해서 compiler를 설치한다.

 

3) protoc 명령어를 실행해 정확한 버전 출력 확인

protoc --version
--> 출력값 : libprotoc 2.5.0

##오류발생시 시행

ldconfig
protoc --version

 

# 하둡 잘작동하는지 예제 (standalone test)

--> 하나의 머신에서 하둡이 잘 돌아가는지 테스트

 

1) vim ./etc/hadoop/hadoop-env.sh  --> 수정

# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}

 

2) hadoop 압축 푼 곳으로 이동

cd hadoop-2.8.3
sudo mkdir input
sudo cp etc/hadoop/*.xml input
sudo bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'
cat output/*

--> 결과 : 1 dfsadmin
반응형
Comments