본문 바로가기
기타 도서 리뷰/시작하세요 하둡 프로그래밍

설치과정 - 시작하세요 하둡프로그래밍 5장 - 데이터노드 추가하기(5PC, 6PC)

by java개발자 2016. 12. 7.

성능 향상을 위해 2개의 PC를 더 추가한다

1PC : 네임노드

2PC : 보조네임노드, 데이터노드

3PC : 데이터노드

4PC : 데이터노드

5PC : 데이터노드

6PC : 데이터노드


----------------------------------------------------------------------------------


2 호스트파일 변경(1,2,3,4,5,6PC)

vi /etc/hosts

192.168.0.7 wikibooks01

192.168.0.8 wikibooks02

192.168.0.9 wikibooks03

192.168.0.10 wikibooks04

192.168.0.11 wikibooks05

192.168.0.12 wikibooks06


5 SSH 설정(1PC에서만)

1PC에서

hadoop > ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@wikibooks05

hadoop > ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@wikibooks06


4 java 복사(3,4PC)


6 하둡 설치(1,2,3,4PC)

1PC는 설정변경

2PC는 변경된 설정 적용

3,4PC는 설치(1PC에서 복사)


1,2 PC  >>>>>>

vi hadoop/conf/slaves

wikibooks02

wikibooks03

wikibooks04

wikibooks05

wikibooks06


vi hadoop/conf/hdfs-site.xml 

(1에서 3으로 변경)

<property>

<name>dfs.replication</name>

<value>3</value>

</property>


5,6PC에 전송

tar -cvf hadoop.tar.gz hadoop-1.2.1

scp hadoop.tar.gz hadoop@wikibooks05:/home/hadoop

scp hadoop.tar.gz hadoop@wikibooks06:/home/hadoop


ssh hadoop@wikibooks05 "cd /home/hadoop; tar xvf hadoop.tar.gz; rm hadoop.tar.gz"

ssh hadoop@wikibooks05 "ln -s hadoop-1.2.1 hadoop"

ssh hadoop@wikibooks06 "cd /home/hadoop; tar xvf hadoop.tar.gz; rm hadoop.tar.gz"

ssh hadoop@wikibooks06 "ln -s hadoop-1.2.1 hadoop"




----------------------------------------------------------------------------------------------------------------------------------------------------------------

이제 5장의 실습을 계속해보자.


일단 5PC, 6PC에는 기존에 업로드한 hdfs 블럭이 없는 상태에서

맵리듀스를 작동했을때, 작동하냐는 의문이 생긴다.


<실행>

[hadoop@wikibooks01 hadoop]$ ./bin/hadoop jar hadoop-beginner-examples-1.0.jar wikibooks.hadoop.chapter05.DepartureDelayCount input dep_delay_count3

(15분 소요) - 2개의 PC를 더 추가했는데, 오히려 시간이 증가했다. 음... virtualbox 의 한계인가???

(아니면 5PC, 6PC에는 hdfs 블럭이 존재하지 않아서, 데이터를 가져오는데 시간이 걸린 걸까?)


---

5장 테스트 비교해보기!! (지금까지의 히스토리는 여기서 확인 가능

http://wikibooks01:50030/jobhistoryhome.jsp


 소요시간

 hdfs 블럭 복사 위치

 데이터노드 PC

 17분

 input

 2,3,4PC

 29분

 input2

 2,3,4,5,6PC

 

 

 

 

 

 



 구분

 블럭위치

 Job Id

 Name

 Map - 

Successful tasks

 Map -

Killed tasks

 Rack-local map tasks

 

 결과저장

 4개PC, 각1코어

 input

 job_201612071256_0001

 DepartureDelayCount

 187

 3

 0

 11분

 dep_delay_count

 4개PC, 각2코어

 input

 job_201612071419_0001

 DepartureDelayCount

 187

 2

 0

 10분

 dep_delay_count2

 6개PC, 각1코어

 input

 job_201612071611_0001

 DepartureDelayCount

 187

 4

 57

 15분

 dep_delay_count3

 6개PC, 각1코어

 input2

 job_201612071726_0001

 DepartureDelayCount

 187

 6

 61

 12분

 dep_delay_count4

 

 

 

 

 

 

 

 

 
         


Rack-local map tasks 의 정체는 뭘까??




// input2 폴더를 이용해서 다시 해보자

[hadoop@wikibooks01 hadoop]$ ./bin/hadoop jar hadoop-beginner-examples-1.0.jar wikibooks.hadoop.chapter05.DepartureDelayCount input dep_delay_count4

(12분 소요) - 큰 차이는 없다...


그런데,,

왜 맵리듀스가 모두 완료하였는데,

메모리 할당된 것이 제거되지 않는가???



>>

>>

[9장 하둡 운영] 에 데이터노드 추가하는 방법이 있다. 이 부분을 참고하자!!

또한 성능을 향상시키기 위해서, 데이터 압축이라든지, 태스트개수, 투기적인 태스크 유무도 고려 필요!!