본문 바로가기
빅데이터/Hadoop

Hadoop 설치 및 실행

by 처리2 2020. 6. 22.
반응형

먼저 환경에 JDK 설치는 필수 

 

1.8버전을 설치 후 적용시켜 놓았다.

 

다음 바로 하둡 설치

https://hadoop.apache.org/releases.html

에 들어가서 3.1.3버전 binary 클릭

(3.1.2버전은 http://archive.apache.org/dist/hadoop/common/hadoop-3.1.2/) 혹시몰라 링크 넣어둠

*****3.1.3.버전으로 독립구축하였지만 워드카운터 부분에서 에러 발생... 원인 모름.. 3.1.2.로 하세요..*****

 

 

이 중 아무거나 오른쪽 클릭하여 링크 복사 후 다운로드

이후 압축 파일 풀고 난 뒤

vi /etc/profile에 환경설정

 

그다음 hadoop version 확인 

3.1.3버전 다운된것을 확인 할 수 있음

 

워드 카운터 예제 실행

이후 cat wordcount_output/part-r-00000을 확인하면 됩니다.

 

기본 하둡에 서버 설치 완료!

openssh 설치

yum install openssh* 

공개키와 비밀키를 설정

ssh-keygen -t rsa -P ""을 수행하여 디폴트로 생성 (엔터 한번 더 치면댐)

 

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

인증기 등록

 

ssh localhost 이후 최초에만 연결하겠냐고 물어보고 그 뒤는 안물어봄 

 

hadoop-env.sh

JDK 경로 추가

 

$HADOOP_HOME/etc/hadoop/core-site.xml

 

 

$Hadoop_home/etc/hadoop/hdfs-site.xml

 

새로운 tronix 계정으로 실행을 했지만 

Permission denied 에러 발생

 

검색결과 [ 참고::https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=any&wr_id=32191 ]

그리고 https://m.blog.naver.com/PostView.nhn?blogId=godjaeseung&logNo=220737195271&proxyReferer=https:%2F%2Fwww.google.com%2F

 

이후

hdfs namenode -format  하여 포맷 한 뒤

start-dfs.sh 실행

결과는 잘 실행된듯 하다

 

그 다음에는 접근할수 있도록 포트를 개방해줘야한다

방화벽 개방!

 

ip:9870 접속 완료~

 

2.9대 버전까지는 port가 50070이었으나 3.x대 부터는 9870으로 바뀌었다.

그 다음

start-yarn.sh 실행!!

포트는 8088을 열어야 한다.

성공!!

 

다음 마스터 노드와 슬레이브 노드 구분하여 설정하기

 

기존에 구축한 서버를 master01로 만들고 새로운 서버를 slave01로 만들 생각이다.

*slave01에 하둡을 설치해야 한다.

 

 

먼저 hostname변경과 hosts에 slave01에 대한 내용을 연결해줄 것이다.

vi /etc/hostname에서 기존 localhost:localdomain를 삭제 후 master01로 변경

그 다음

vi /etc/hosts 에서

밑에다가 설정!! 

slave01 서버에도 동일하게 적용해준다

그리고 터미널을 껐다가 키면 

 

호스트 네임이 변경된 것을 확인할 수 있다.

 

그리고 데이터를 주고 받을때는 ssh 통신을 이용하기 때문에

기존 master01에서 만들어 놓은 인증 키를 보내야한다.

 

slave01서버에 yum install ssh 및 설정을 필수 !!

 

 

 scp -rp /home/tronix/.ssh/authorized_keys tronix@slave01: /home/tronix/.ssh/

 

명령어를 날리면 인증키값이 해당경로로 복사가 된다~

그리고 각 ssh master01 , ssh slave01 명령어를 날려서 접속되는지 확인!!

 

확인 완료!!

이제 설정을 해보자 

 

vi $HADOOP_HOME/etc/hadoop/core-site.xml 에는

변경해주고

 

hadoop-env.sh에는

HADOOP_PID_DIR의 대한 경로를 지정해주었다. 그리고

hdfs-site.xml에는 master와 slave 다르게 지정해야 되는데

 

master01 -

slave01 - 

 

master01: mapre-site.xml

모든 노드에 yarn-site.xml

이렇게 설정해주면 된다.

 

****** slave에서 중간에 hostname부분을 원래 master01로 했었는데 워드카운터 실행시

jar 부분에서 안넘어가는 에러가 발생했었다.. 그래서 고정 ip를 넣어주었더니 실행 되었다...

 

 

워드 카운터 실행!!

hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/root
hdfs dfs -mkdir /user/root/cont
hdfs dfs -mkdir /input
hdfs dfs -copyFromLocal $HADOOP_HOME/README.txt /input

 

 

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /input/README.txt ~/wordcount-output

 

실행이 잘 된다면  이렇게 뜰것이다.. 

만약에 jar에서 안넘어 가거나 map 0% reduce 0%에서 안넘어갈수도 있다.. 왜냐면 내가 그랬으니깐..

이틀째... 찾아본 결과..

메모리 부족이라고 한다

 

yarn-site.xml(마스터, 슬레이브) 둘다

 

이렇게 넣어주고 실행하니.. 아주 잘되는것을 확인했다~

 

hdfs dfs -cat ~/wordcount-output/part-t-00000해보면 확인할 수 있다!!

 

하둡 설치 끝~

반응형

'빅데이터 > Hadoop' 카테고리의 다른 글

스파크 카프카 실시간 연동 구축  (0) 2020.07.01
SPARK 설치 후 zepplien까지 ~  (0) 2020.06.25
CentOs7 - Python 3.6.8 설치  (12) 2020.06.23
카프카 구축하기  (0) 2020.06.23
CentOs7 방화벽 설정 부분 정리  (0) 2020.06.22

댓글