우분투 풀모드1

우분투 풀모드 1

컴퓨터를 세 가지로 구분한다.

(1) 마스터(=네임노드) 1대

(2) 세컨더리 1대

(3) 데이터노드 n대(나머지 컴퓨터들)

1. 우분투 설치 후 접속

※ 한글 입력이 안되면 환경설정 -> 언어 지원 에서 패키지를 전부 설치/업데이트.

그래도 안되면 터미널에서 sudo apt-get install ibus-hangul 이라고 치고 컴퓨터 재시작

<각종 다운로드>

2. JDK 다운로드 (oracle 사이트에 들어가서 JDK 를 Linux x64 tar.gz 로 다운로드)

 

3. Spring 다운로드 (spring.io 로 접속해서 Linux 용 tar.gz를 다운)
(나중에 sts 가 다 설치 된후 메뉴(단축키alt+w) 중의 properties에 들어가서 content Assist 를 Crtl+Space로 바꿔줘야 한다)

4. 아파치 톰캣 다운로드(tomcat.apache.org 에 접속해서 tar.gz 다운로드)

이때, 7.0 버젼을 받아야 함 (8.0 호환안됨)
 

5. 몽고DB를 다운로드한다. (mongodb.org 에서 콤보박스를 Ubuntu 14.04 Linux 64-bit 를 다운로드)

——————————————————————————————————

<apt-get 업그레이드와 업데이트>

6. 터미널에서 sudo apt-get upgrade

7. 터미널에서 sudo apt-get update

8. 터미널에서 sudo apt-get install r-base

9. 이제 터미널에서 R 이라고 쓰면 통계프로그램 R을 쓸 수 있음.

(예)

a<-10

a

q() 라고 쓰면 R에서 나감

<세션 열기>

10. sudo apt-get install openssh-server

——————————————————————————————————

11. 다운로드된 모든 파일들을 압축을 풀고, 아래처럼 옮긴다.

cd 다운로드

sudo mv ./jdk1.8.0_45 /usr/local

위와 같이 하면 다운로드 폴더의 jdk폴더를 /usr/local 로 옮길 수 있다.

이렇게 jdk를 포함한 몽고DB, 톰캣, 스프링 폴더들을 /usr/local 로 옮겨야 한다.

12. environment 파일의 권한 수정.

cd /etc

sudo chmod 646 environment 로 쓰기 권한 수정

13. sudo nano environment 로 파일 수정.

path 끝에 :/usr/local/jdk1.8.0_45/bin 을 추가해서 붙여준다.

두번째 줄을 만들어서 JAVA_HOME=/usr/local/jdk1.8.0_45 를 쓴다.

수정 후 반드시 source environment 를 써서 적용시킨다.

나중에 하둡을 다 다운받았다면,

path 끝에 :/usr/local/hadoop-1.2.1/bin 을 붙이고,

세번째 줄을 만들어서 HADOOP_HOME=/usr/local/hadoop-1.2.1 을 쓴다.

14. <ssh 암호화키 설정>

sudo chmod 646 hosts 로 권한을 수정한후,

sudo nano hosts로 내용을 수정.

아래처럼 다섯줄을 적고 저장.(모든 컴퓨터에 동일하게 적용. 4대 기준)

127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
::1     localhost localhost.localdomain localhost6 localhost6.localdomain6
211.238.142.xxx  ns1     zookeeper1      NameNode
211.238.142.xxx  ns2     zookeeper2      SecondaryNode
211.238.142.xxx  ns3     zookeeper3      DataNode01
211.238.142.xxx  ns4     zookeeper4      DataNode02

sudo chmod 646 hostname 으로 권한 수정.

sudo nano hostname 으로 내용을 수정.

마스터는 ns1, 세컨더리노드는 ns2, 첫번째 데이터노드는 ns3, 두번째 데이터노드는 ns4 식으로 쓰면 됨.

15. <ssh 암호화키 생성> (모든 컴퓨터에 동일하게 적용)

mkdir .ssh 로 폴더 생성

cd .ssh 로 폴더에 진입

ssh-keygen -t rsa 라고 쓴 후 엔터를 3번 누르면 암호화됨.

ls -al로

id_rsa 파일과 id_rsa.pub 파일 존재를 확인할것.

16. <암호화키 조합> (마스터 컴퓨터만)

.ssh 폴더 에 위치한 상태에서,

cat id_rsa.pub >> authorized_keys 라고 치면 해당 파일이 생성됨.

(ls -al로 authorized_keys파일이 생성되었는지 확인할 수 있음)

more authorized_keys 로 갖고 있는 암호화키를 확인할 수 있음.

17. ssh sist@SecondaryNode cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 로 하나를 조합.

more authorized_keys 로 갖고 있는 암호화키를 확인.

ssh sist@DataNode01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 로 하나를 또 조합.

more authorized_keys 로 갖고 있는 암호화키를 확인.

ssh sist@DataNode02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 로 하나를 또 조합.

more authorized_keys 로 갖고 있는 암호화키를 확인.

18. <통합된 암호화키를 모두에게 배포> (마스터 컴퓨터만)

.ssh 폴더에 위치한 상태에서,

scp -rp authorized_keys sist@SecondaryNode:~/.ssh/authorized_keys 라고 쓰면 100%가 떠야함.

scp -rp authorized_keys sist@DataNode01:~/.ssh/authorized_keys 라고 쓰면 100%가 떠야함.

scp -rp authorized_keys sist@DataNode02:~/.ssh/authorized_keys 라고 쓰면 100%가 떠야함.

 

이때, ‘비밀번호를 넣으라’고 나오면서 안된다면 세컨더리노드와 데이터노드 컴퓨터에서 권한을 수정해줘야함.

마스터가 아니라, 세컨더리노드와 데이터노드 컴퓨터에서 각자 sudo chmod 777 을 적용해야 함. (sudo chmod 777 .ssh  였나?)

19. 제대로 보냈다면 ‘마스터 컴퓨터’는 ssh SecondaryNode date, ssh DataNode01 date, ssh DataNode02 date 로 날짜를 출력해볼 수 있음.

제대로 받았다면 ‘세컨더리노드’와 ‘데이터노드’는 각자 컴퓨터에서

cd /.ssh

ls -al

authorized_keys 파일이 생겨났는지 확인할 수 있음. 생겼어야 함.


20. 디렉토리를 만든다.

/home/hadoop/hdfs/data

/home/hadoop/hdfs/name

/home/hadoop/hdfs/temp

이렇게 세 개의 폴더를 만든다.

21. cd /home 으로 가서

sudo chown sist hadoop 으로 hadoop 폴더에 소유권을 준다.

이어서 cd hadoop 으로 가서

sudo chown sist hdfs 로 hdfs에 소유권을 주고,

cd hdfs 로 가서

sudo chown sist * 로 안쪽 폴더에 모두 소유권을 준다.
 

22. 맵리듀스용 폴더를 만든다.

루트 디렉토리에서 sudo mkdir -p /home/hadoop/hdfs/mapred 로 폴더를 만든 후,

sudo chown sist mapred 로 소유권을 부여한다.

23. 탐색기를 이용해 hadoop 폴더 내 파일들을 아래와 같이 수정한다(지에디트로 열기). (마스터만 할것)

마스터만 수정하는 이유는 다음과 같다. 마스터가 수정한 후 해당 파일들을 압축해서 각 노드에 전송해주고, 각 노드는 압축을 품으로써 하둡환경을 완전히 동일하게 만들 수 있다.

hdfs-site.xml, core-site.xml, mapred-site.xml










24.

sudo tar cvfpz hadoop-1.2.1.tar.gz ./hadoop-1.2.1 로 타르파일을 만든다.

의미: c: 새로운 아카이브를 생성

v: verbose. 압축되거나 해제되는 파일 이름을 화면에 보여줌(진행상황 보이기)

f: 아카이브의 이름을 명시

p: permission. 허가권을 유지

z: gzip이라는 의미 (그냥 tar가 아닌 tar.gz)

※ tar의 옵션은 tar -cvfpz 라 써도 되고, tar cvfpz 라 써도 된다.


25. scp -rp hadoop-1.2.1.tar.gz SecondaryNode:/usr/local

scp -rp hadoop-1.2.1.tar.gz DataNode01:/usr/local

scp -rp hadoop-1.2.1.tar.gz DataNode02:/usr/local

위 명령어로 아까 만든 tar.gz를 각 노드의 /usr/local 폴더로 전송할 수 있다.

만약 아래 처럼 denied가 나온다면, 마스터가 아니라, 세컨더리노드와 데이터노드 컴퓨터에서 각자 sudo chmod 777 을 적용해야 한다. (sudo chmod 777 /usr/local)


26. 각 노드는 전달받은 tar.gz를 압축품으로써 마스터와 똑같은 하둡환경을 설정할 수 있다.

27. 데이터노드를 포함하여 모든 컴퓨터는

hadoop namenode -format

./start-all.sh 를 써서 하둡을 실행한다. (실행이 안될 경우 cd /usr/local/hadoop-1.2.1/bin 으로 이동해서 쓰며 된다)

터미널 창을 새로 열어서 jps 라고 쓰면 상태를 확인할 수 있다.

네임노드는 JobTracker가 나와야 하며,

세컨더리 노드는 SecondaryNode가 나와야 하고,

나머지 데이터 노드는 TaskTracker가 나와야 한다.