이어서 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개로 구성되어 있다.
'🌴 DevOps > Docker & K8s' 카테고리의 다른 글
[Docker] (보류) 도커허브에 이미지 배포 +TroubleShooting (0) | 2021.07.27 |
---|---|
[Docker]빅데이터 분석환경 구성4-Zeppelin0.9 설치 (0) | 2021.07.27 |
[Docker] 빅데이터 분석환경구성3-Spark 3.0설치 (0) | 2021.07.27 |
[Docker] 빅데이터 분석환경 구성1-Ubuntu&Java설치 (0) | 2021.07.27 |
[Docker] windows 10에 docker 설치하기 (1) | 2021.03.30 |
컨테이너기반 3Tier구성 (Nginx/Tomcat/MySQL) (0) | 2020.12.27 |