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

설치과정 - 시작하세요 하둡프로그래밍 2장

by java개발자 2016. 12. 4.


블로그 : 

virtualbox : http://ym7596.blog.me/220752672498

centos6 : http://itgroovy.tistory.com/513


1. centos 6.8 다운로드

http://ftp.daumkakao.com/centos/6.8/isos/x86_64/

>

CentOS-6.8-x86_64-bin-DVD1to2.torrent2016-05-25 19:01229K


를 다운받는다. dvd 2개 파일을 받지만 실제로 사용하는 것은 1개뿐인듯. (CentOS-6.8-x86_64-bin-DVD1.iso)



2, virtualbox 에 4개 장비 설치 (일단 2개만 해보자)

메인PC : 8코어(하이퍼스레딩), 1테라, 16기가

4대 각각 1코어, 128G 하드, 2G메모리



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

virtualbox error

> 해결 : 윈도우업데이트 KB3004394 삭제하기

http://blog.naver.com/bdh0727/220207498443


>> NONONO

최신 VirtualBox-5.1.10-112026-Win.exe 을 삭제하고,

>> VirtualBox-4.3.40-110317-Win.exe를 설치함.(win7 옛날빌드버전) > 성공


root 계정 root / root123

사용자 계정 test / test123


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

설치 이후


1.ssh 설정(포트포워딩)

http://ifelseif.tistory.com/5

> 브리지네트워크로 설정하면, 포트포워딩도 할 필요가 없다고 한다.(http://flyingwolf.co.kr/220575084716)

>> 두번째 centos는 ifconfig 하면, ip가 안나온다. -_-;;

>>> 두번째 이후 가상머신에서는 ONBOOT 를 yes로 변경해주어야 한다. 

http://evir.tistory.com/entry/CentOSVIrtualbox%EC%97%90-%EC%84%A4%EC%B9%98%ED%95%9C-CentOS-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%951


*4PC 모두 적용


0 하둡 계정 추가

root > adduser hadoop

root > passwd hadoop

비번 : hadoop


1 푸티 설정하기(버추얼박스설정에서 브리지어댑터로 설정하고나서), 이렇게 하면 ftp도 가능

vi /etc/sysconfig/network-script/ifcfg-eth0

> ONBOOT을 yes로 변경

service network restart

ifconfig 로 ip확인하기


2 호스트파일 변경

vi /etc/hosts

192.168.0.7 wikibooks01

192.168.0.8 wikibooks02


3 인코딩 설정 > 이미 UTF-8로 되어 있음(확인작업)

> echo $LANG

> locale


4 java 복사, 압출풀기, 심볼릭링크, 환경변수등록


cd /usr/local

chmod 755 jdk-7u79-linux-x64.tar.gz

tar xvfz jdk-7u79-linux-x64.tar.gz

ln -s jdk1.7.0_79 java

ls -al


vi /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin

export CLASS_PATH="."

source /etc/profile

java -version


5 SSH 설정(1PC에서만)

root > su - hadoop

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


그런데 .ssh 폴더나 id_rsa.pub 파일이 없는 경우 ssh-keygen으로 key 먼저 생성해야 한다.

https://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0

생활코딩 : https://opentutorials.org/module/432/3742


6 하둡 설치(1PC에서만, 나중에 슬레이브로 전부 복사할 것임.)

http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-1.2.1/

hadoop > tar xvfz hadoop-1.2.1.tar.gz

hadoop > ln -s hadoop-1.2.1 hadoop


hadoop >

vi hadoop/conf/hadoop-env.sh

export JAVA_HOME=/usr/local/java

export HADOOP_PID_DIR=/home/hadoop/hadoop-1.2.1/pids


vi hadoop/conf/masters

wikibooks02


vi hadoop/conf/slaves

wikibooks02

vi hadoop/conf/core-site.xml

<property>

<name>fs.default.name</name>

<value>hdfs://wikibooks01:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/hadoop-data/</value>

</property>


vi hadoop/conf/hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.http.address</name>

<value>wikibooks01:50070</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>wikibooks02:50090</value>

</property>

vi hadoop/conf/mapred-site.xml

<property>

<name>mapred.job.tracker</name>

<value>wikibooks01:9001</value>

</property>


SSH


hadoop >

압축( http://nota.tistory.com/53

tar -cvf hadoop.tar.gz hadoop-1.2.1

전송

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

설치

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

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


주의!!

wikibooks01 에서 hadoop-1.2.1폴더로 압축을 풀고, hadoop폴더로 심볼릭 링크를 만들었는데

나중에 hadoop 폴더를 압축해서 슬레이브에 보내면, 결국 슬레이브의 hadoop폴더도 hadoop-1.2.1 를 바라보고 있다. 물론 슬레이브에 없어서 오류남. 

그래서 원본 폴더인 hadoop-1.2.1를 압축해서 보냄. 슬레이브의 hadoop-1.2.1 폴더명을 hadoop으로 변경해버림.

처음에 할때 wikibooks01 에서!!

그냥 압축풀고 나서 심볼릭 링크 사용하지 말고, hadoop 으로 폴더명 변경해서 사용하자.

> hadoop-1.2.1 을 압축해서 보내고, 심볼릭 링크 만드는 것도 ssh 명령어로 실행하자.


7 하둡 실행

/home/hadoop/hadoop-1.2.1 > ./bin/hadoop namenode -format

/home/hadoop/hadoop-1.2.1 > ./bin/start-all.sh

혹시, Stop it first 라는 에러가 발생할 경우,

/home/hadoop/hadoop-1.2.1 > ./bin/stop-all.sh


8 확인

> jps (각각 서버에서)

네임 노드 확인 : 

http://192.168.0.7:50070/dfshealth.jsp


데이터 노트 확인 : 

http://192.168.0.8:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=%2F


*웹페이지 접속이 안되면 방화벽 내리기( http://blrunner.com/46

su -  root

service iptables stop

chkconfig iptables off


*예제실행

/home/hadoop/hadoop-1.2.1 > ./bin/hadoop fs -put conf/hadoop-env.sh conf/hadoop-env.sh

/home/hadoop/hadoop-1.2.1 > ./bin/hadoop jar hadoop-examples-*.jar wordcount conf/hadoop-env.sh wordcount_output

/home/hadoop/hadoop-1.2.1 > ./bin/hadoop fs -cat wordcount_output/part-r-00000


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

* 하둡 명령어 모음

http://naleejang.tistory.com/31


*centos를 다시 켜니

무슨일인지...bin/hadoop 파일과 bin/start-all.sh 파일의 크기가 0이다.-_-;;;

그래서 hadoop 이 실행되지 않았음.

hadoop을 다시 실행하고, jps해서 목록이 나와야 성공


Startup scripts

The $HADOOP_INSTALL/hadoop/bin directory contains some scripts used to launch Hadoop DFS and Hadoop Map/Reduce daemons. These are: 

  • start-dfs.sh - Starts the Hadoop DFS daemons, the namenode and datanodes. Use this before start-mapred.sh

  • stop-dfs.sh - Stops the Hadoop DFS daemons. 

  • start-mapred.sh - Starts the Hadoop Map/Reduce daemons, the jobtracker and tasktrackers. 

  • stop-mapred.sh - Stops the Hadoop Map/Reduce daemons. 

  • start-all.sh - Starts all Hadoop daemons, the namenode, datanodes, the jobtracker and tasktrackers. Deprecated; use start-dfs.sh then start-mapred.sh

  • stop-all.sh - Stops all Hadoop daemons. Deprecated; use stop-mapred.sh then stop-dfs.sh

출처: https://wiki.apache.org/hadoop/GettingStartedWithHadoop



*centos6.8 gui 없애기

gui로 하면 편할줄 알았는데, 결국 centos는 띄워놓기만 하고,

main PC에서 푸티로 접속하면 되니, 굳이 gui 쓸 필요가 없다. 오히려 불편.(virtualbox centos로 마우스 진입시, 마우스 움직임 싱크가 달라서 맞추는게 귀찮음. 이리저리 움직여줘야 함.)

gui를 없애기

출처 : https://www.youtube.com/watch?v=vD8o4FbAxfw


root > vi /etc/inittab

5를 3으로 변경(Full multiuser mode)

root > reboot


CentOS 시스템 기본 명령어

http://egloos.zum.com/okprince/v/1867026

끄기

root > poweroff