본문 바로가기
🌴 DevOps/Docker & K8s

[Docker] 빅데이터 분석환경구성2-Hadoop 2.7.7

by 카프리썬_ 2021. 7. 27.
728x90

이어서 java가 설치된 Ubuntu컨테이너안에 hadoop을 설치해본다. 

 

2. Hadoop

이전에 java까지 설치한 컨테이너에 접속하여 아래의 내용을 진행한다.

1. hadoop설치 및 환경설정

1-1. hadoop 다운 및 압축해제

wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

1-2. 심볼링크(hadoop) 등록

압축을 푼 폴더를 홈디렉토리로 이동한다

linux폴더이동 mv hadoop-2.7.7/ ~ (root에 저장)

그리고 그 경로를 java라고 심볼링크를 등록한다 

1-3.환경변수설정

이제 환경변수를 등록한다 

환경변수등록 파일 열기 vi ~/.bashrc

 

vi ~/.bashrc에서 아래와 같이 hadoop_home path를 추가한다.

환경변수등록 파일 저장 source ~/.bashrc

그리고, hadoop 자체에서 자바와 연결을 해준다.

 vi hadoop/etc/hadoop/hadoop-env.sh

2. hadoop 설정파일 세팅

2-1.data와 name에 관한 디렉토리 생성

mkdir /tmp/hdfs/

mkdir data/

mkdir name/

hadoop/etc/hadoop에 있는 몇가지 설정파일을 수정한다.  

2-2.hdfs.site.xml 수정

vi hadoop/etc/hadoop/hdfs-site.xml

configuration부분을 아래와 같이 채운다.

2-3.core-site.xml수정

vi hadoop/etc/hadoop/core-site.xml

configuration부분을 아래와 같이 채운다.

2-4.mapred-site.xml생성

cp hadoop/etc/hadoop/mapred-site.xml.template hadoop/etc/hadoop/mapred-site.xml

mapred-site.xml파일에 해당하는 내용은 이미 mapred-site.xml.template로 저장이 되어 있다.

그래서 cp명령어를 이용해서 mapred-site.xml 파일을 생성한다.

 

2-5.yarn-env.sh 추가 및 yarn-site.xml 수정

vi hadoop/etc/hadoop/yarn-env.sh

default로 설정이 안되어 있다면 아래와 같이 heap-max를 지정해ㅜㄴ다.

vi hadoop/etc/hadoop/yarn-site.xml 

configuration부분을 아래와 같이 채운다.

3.ssh설정

각 노드간에 패스워드 입력없이 원활하게 접속할 수 있도록 공개키 생성

3-1. 키 생성(ssh-keygen)

apt-get install ssh

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa : RSA방시으로 암호생성하고, .ssh/id_rsa에 저장

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys : 암호의 publickey를 authorized_keys에 씀

chmod 0600 ~/.ssh/authorized_keys : 권한변경

3-2. host allow시키기

사실 처음엔 connect to host localhost port 22: Connection refused 오류가 났다. >> 참고

그래서 추가로 설정해주었는데 아예 최상경로 이동

vi etc/hosts.allow

이 파일에는 허용할 ip를 직접 입력할 수 잇는데 아래와 같이 입력했다. 

그리고 ssh 재시작

etc/init.d/ssh restart

 

3-3.ssh접속테스트

ssh 0.0.0.0 을 확인해보면 새로운 쉘이 비밀번호 없이 새로 접속할 수 있게 된다.

이렇게 되면 컨테이너 안에서 또다른 쉘이 접속되는것이다.

exit로 ssh접속한 쉘에서 나온다.

4. hadoop실행테스트 

4-1.namenode 포맷

hadoop namenode -format

만약, 지금까지 진행하면서 경로 등 잘못진행했으면 여기에서 hadoop을 인식하지 못한다!

4-2. 하둡실행 및 정상동작 확인

 hadoop/bin/start-all.sh

자바프로세스 명령 jps 

아래와 같다면 하둡데몬 정상적 실행확인

ls명령으로 확인 정상적 실행확인

 

4-3.컨테이너 이미지화

exit하고 컨테이너에서 나온다음,

지금까지 작업한 컨테이너를 하나의 이미지로 저장하기 위해 커밋한다

docker commit CONTAINER IMAGE_NAME 

docker commit hadoop hadoop

 

이미지확인 docker images

맨처음 pull로 가져온 ubuntu가 있고, 

java를 설치랑 hadoop을 설치한 이미지가 있다.

 

클러스터로 구성 테스트해보기 >> 참고

 

하둡클러스터는 namenode1개, datanoe3개로 구성되어 있다.

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });