본문 바로가기
[ Linux ]

[빅데이터] 하둡(Hadoop) 쉽게 설치하기(+예상 에러 포함)

by 히앤님 2020. 10. 7.
반응형
SMALL

Hadoop


빅데이터 시스템 중 가장 기본적. 무료
알아서 기능 구현. 결함이 있어도 알아서 standby namenode가 알아서 멈추지 않도록 작업해줌.
오늘은 설치만 해도 ㅈ같이 힘들기 때문에 최대한 복사 붙여넣기로 할 수 있게 구성.

우리는 '아파치 하둡 배포판' 깔 예정. -> 이것만 무료. 그리고 존나 복잡함
하둡 만든 사람 더그 커틴 개새끼
아파치는 기본이고 보통 회사에서는 클라우데라, 호튼윅스 사용할듯.(이 두개는 유료)


 

[아파치 하둡 에코시스템]
하둡을 설치하고(빨간색) 그 주변에 있는 것들을 연결해주어야함.
따로따로 만든거다보니까 연결하는 작업이 너무 힘들기 때문에 클라우데라, 호든윅스처럼 이미 어느정도
연결되어 설치할 수 있는 것을 사용하는 것.

 

 

우리는 지금 가상 환경 3개 만들어서 거기에 개별적인 리눅스 깔고 연결해줄꺼임.

 


1. Vitural Box 설치

( 현재 6.0 버전이지만 5.2 버전 다운로드 )

- https://www.virtualbox.org/ 들어가서 5.2.44 > windows hosts 다운받기

- 같은페이지 Extension Pack 다운받기(확장팩)

- 다 next > install로 설치

 

1. 설치
설치 완료된 화면

 

 

 

2. Vagrant(베이그랜트) 다운로드

https://www.vagrantup.com/ 들어가서 2.2.10 다운로드

- 다 next > 설치 (자동 재부팅됨)

 

 

2 베이그랜트 다운로드

 

 

3. Vagrant(베이그랜트) 설치

- cmd를 관리자모드 실행

- C:\HashiCorp 입력

- vagrant init 입력

 

 

 

- 탐색기 > C:\HashiCorp\Vagrant 폴더 생성된거에 들어가서 생성된 Vagrantfile의 모든 내용을 제거하고 다음 내용을 추가한다.

 

하단 내용 복사>붙여넣기

 

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

config.ssh.insert_key = false

config.vm.define :nn01 do |nn01_config|

nn01_config.vm.box = "centos/7"

nn01_config.vm.hostname = "nn01"

nn01_config.vm.network "private_network", ip: "192.168.56.101"

nn01_config.vm.provider :virtualbox do |vb|

vb.name = "nn01"

vb.memory = "4096"

end

end

config.vm.define :dn01 do |dn01_config|

dn01_config.vm.box = "centos/7"

dn01_config.vm.hostname = "dn01"

dn01_config.vm.network "private_network", ip: "192.168.56.102"

dn01_config.vm.provider :virtualbox do |vb|

vb.name = "dn01"

vb.memory = "4096"

end

end

config.vm.define :dn02 do |dn02_config|

dn02_config.vm.box = "centos/7"

dn02_config.vm.hostname = "dn02"

dn02_config.vm.network "private_network", ip: "192.168.56.103"

dn02_config.vm.provider :virtualbox do |vb|

vb.name = "dn02"

vb.memory = "4096"

end

end

end

<에러> Vagrant failed to initialize at a very early stage: There was an error loading a Vagrantfile....

-> 웹에서 붙여넣은 거기 때문에 공백이 존재할 수 있음. 필요없는 공백 다 지우고 다시 해보면 됨.

 

 

 

4. 가상머신 기동

- 다시 cmd 돌아와서 vagrant up 입력하면 설치됨

 

좌:명령어 우:완료된 화면

 

<에러> 갑자기 다운로드가 잘 되다가 멈춰서 안되면, 도스창에 아래 사진처럼 마우스 커서를 뒀을 확률이 높다.

방향키를 클릭해서 다운로드를 이어서 해주면 된다.

 

이경우 재부팅이 아닌 방향키를 눌러준다.

 

 

- C 드라이브 > user > VirtualBox VMs에 가상 폴더 3개가 만들어져 있어야 함. 없으면 설치가 제대로 되지 않은 것.

 

 

 


Vagrant(베이그랜트)란

경량화된 Virtual machine 관리 서비스이다.

OS를 직접 하나씩 설치하지 않고 단순히 이미지 형태로 OS를 설치할 수 있다는 것을 말한다.

그래서 Vagrant를 이용하기 위해서는 가상머신이 설치되어 있어야 한다.

참고로 default는 virtual box이다.

 

+

가상장치에서는 네트워크 잡는게 제일 어렵다.

(하루가 다르게 안잡히는 등 에러가 많음.)

베이그랜트는 그러한 작업 없이 알아서 네트워크를 잡아주고

오라클 설치, ip를 잡아주는 등 번거로움을 없애준다.

추가로 공부를 원하면 docker를 공부해볼 것.


5. Oracle VM VirtualBox 서버 로그인

- Oracle VM VirtualBox을 관리자권한으로 실행하면 nn01/dn01/dn02 가상머신(서버)이 생김

 

 

 

- 확장판 불러오기 : 파일 > 환경설정 > 확장 > + > 확장판 설치

 

확장판 설치

 

 

- nn01 / dn01 / dn02 각각 더블클릭하면 각각의 가상환경에서 리눅스가 켜진다.

login : root/vagrant

         vagrant/vagrant

2개의 계정이 만들어져 있는데 우선 root 계정으로 접속 확인

 

로그인 : root/vagrant 셋다 root로 접속하기

 

 

마우스가 잡히면 오른쪽 shift 키로 벗어나자.

<참고> 마우스 벗어나는 키 바꾸는 법 : 환경설정 > 입력 > 가상머신 (탭) > 단축키 수정

 

나는 ctrl + alt로 설정함.

 

<참고>파일 >가상환경 내보내기 하고 다른장치에서 불러오면 지금 장치가 그대로 다시 불러올 수 있다.

 

6. putty / MobaXterm 설치

현재까지 서버에 직접 접속한 것이다. 만약 집에서 회사 서버로 접속하려면? -> putty 를 설치한다.- https://putty.ko.softonic.com/ 에서 무료 다운로드 > putty-0.70-installer.msi 더블클릭 후 설치 > 실행

https://mobaxterm.mobatek.net/ 에서 GET MOBAXTERM NOW! > Home Edition Free 다운로드 > potable edition 다운로드(압축 풀고 MobaXterm_Personal_20.3 실행)

 

 

putty 설치

 

 


PUTTY

리눅스 시스템 터미널을 활용하기 위해서는

PUTTY 등의 다양한 SSH(보안셸) 관련 프로그램을 이용하여

원격지에서 호스트 접속을 위한 프로토콜 프로그램을 필요로 한다.

기존 원격접속 기능에 암호화 기능을 추가한 것.

양쪽 리눅스를 GUI로 설치하면 대부분 사용 가능하다.

 

MobaXterm

MobaXterm 은 원격 컴퓨팅 toolbox이다.

단일 윈도우 응용 프로그램으로

다양한 연결방식을 제공한다.

물론 putty 를 사용하는 사람들에게도 필요한 원격 작업들을 제공한다.

Home Edition 으로 무료로 사용할 수 있으나 ,

최대 12 session / 2 SSH tunnels / 4 macros / 360 초 Tftp 의 제한이 걸려 있다.


7. putty IP연결

- 1) Oracle VM Virtual에서 각 노드의 아이피 확인

     CentOS 7의 최소 설치로 되어 ifconfig 명령어도 없다. 우선 ip addr 로 확인

 

dn01의 ip 주소 확인

 

각각 확인해본 ip는 다음과 같다.

nn01 : 192.168.56.101

dn01 : 192.168.56.102

dn02 : 192.168.56.103

 

 

- 2) putty에 연결

Oracle VM Virtual에서 찾은 ip로 putty가 접속할 수 있게 한다.

비밀번호 없이 접속이 가능하게끔 vi 에디터를 사용하자.

 

### 각각의 창에 한줄씩 입력하기 ###

[root@nn01 ~]# vi /etc/ssh/sshd_config
/Password
                  -> PasswordAuthentication 찾기
PasswordAuthentication no를 PasswordAuthentication yes로 변경
(다시 vi /etc/ssh/sshd_config 로 들어가서 바뀌었는지 확인하기)
[root@nn01 ~]# systemctl restart sshd         -> putty에 접속 가능하게 바꿔주기

nn01 외에도 dn01, dn02에도 같은 작업을 한다.

 

vi 화면 no -> yes로 변경

 

 

 

- 그 후 putty 접속 : IP 주소 쓰고 세션 이름 쓰기 -> save

 

 

오른쪽처럼 쓰자.
이런 에러 나면 systemctl restart sshd를 안해준거다.

 

 

- 결과

 

putty로 각각의 컴퓨터에 연결되었다.

 

 

<주의> 아래 작업을 하기 전에 putty는 꺼도 되지만 가상머신(Oracle VM Virtual)은 끄면 안된다.

 

8. MobaXterm 연결

- 각각의 화면으로 띄워서 하면 불편하지 않을까? MobaXterm가 이러한 불편함을 해결해준다.

위 작업을 끝내면 기본적으로 Putty의 세션이 자동으로 로드되어 모든 계정이 뜬다.

(뜨지 않는다면 우클릭 후 session을 업데이트하자)

 

세션에 계정이 전부 뜬다

 

- 왼쪽에 Putty Sessions에 putty 연결이 들어온거 확인하고 하나씩 눌러놓고 MultiExec을 클릭한다.

 상단에 MultiExec 를 클릭하면 복붙도 가능하고 3개의 계정을 한번에 움직일 수 있다. 또한 한 화면에 탭으로 여러 개의 계정을 움직일 수 있기 때문에 관리가 편리하다.

 

 

 

한번에 로그인해보자.

 

 

9. 하둡 설치를 위한 추가 설정

- 3개의 컴퓨터에 하둡 연결을 위한 추가 작업을 진행한다.(임시폴더인 tmp로 가서 설치해주자.)

1) 패키지 업데이트

2) 자주 쓰는 프로그램 설치(install)

[root@nn01 root]# cd tmp
[root@nn01 tmp]# yum update

[root@nn01 tmp]# yum install telnet svn git nc ntp wget vim net-tools

 

좌 : 업데이트 우 : 프로그램 설치

 

3) 방화벽 끄기

 

- 무식하지만 편의성을 위해 방화벽을 전부 꺼버릴꺼다. (disable까지 해버리자. 회사에서는 무식하게 이러면 안된다.)

[root@nn01 tmp]# systemctl stop firewalld
[root@nn01 tmp]# systemctl disable firewalld

 


하핳...많이 했지?

아직 시작도 안했다^^...

본격적인 하둡 설치를 도전하자.


10. 자바 설치 확인

- 다시 root 계정 홈으로 이동하자. 모든 사용자를 위한 java를 설치할 예정이니, root 계정으로 로그인한다.

- 설치되었는지 확인하기

[root@nn01 tmp]# cd ~
[root@nn01 root]$ which java

Master, Slave 역할

nn01 = Master (NameNode, SecondaryNamenode, ResourceManager)

dn01 = Slave (DataNode, NodeManager)

dn02 = Slave (DataNode, NodeManager)

nn01, dn01, dn02 각각에서 JDK의 압축을 해제하고 설치하고 설정

mobaTerm으로 반복 동작을 줄일 수 있다.


 

11. protobuf 설치


Protobuf 

구글에서 공개한 오픈소스 직렬화 라이브러리

프로토콜 버퍼는 데이터를 연속된 비트로 만들고,

이렇게 만들어진 비트를 해석해 원래의 데이터를 만들 수도 있다.

현재 다양한 시스템이 이기종 혹은 내부 프로세스 간의 통신에 프로토콜 버퍼를 사용하고 있으며,

하둡2도 내부 데몬 간의 데이터 통신을 위해 프로토콜 버퍼를 적용했다.

( 도서 ‘시작하세요 하둡프로그래밍’에서 언급하긴 했지만

설치 없어도 우리가 구동하는 것에는 문제가 되지 않았지만 혹시 몰라 설치해본다 )


(1)설치전 필요 툴 ( root 계정에서 )

[root@nn01 root]$ yum install -y autoconf automake libtool curl gcc-c++ unzip

(2) 다운로드 ( 책마다 버전이 중요하다고 강조함 )

[root@nn01 ~]# cd /tmp
[root@nn01 tmp]# wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

 

 

 

- 압축풀기

- 이동시키기(mv)

- 이동되었는지 확인

[root@nn01 tmp]# tar -zxvf protobuf-2.5.0.tar.gz
[root@nn01 tmp]# mv protobuf-2.5.0 /opt/
[root@nn01 tmp]# ls /opt

 

파일이 압축이 풀려서 잘 이동했음.

 

 

(3) 설치 ( protobuf 폴더로 이동 )

[root@nn01 tmp]# cd /opt/protobuf-2.5.0/

 

경로이동

 

[root@nn01 protobuf-2.5.0]# ./configure
[root@nn01 protobuf-2.5.0]# make              ( 여기서 에러가 발생하면 ./configure에서 안되는 것임 )
[root@nn01 protobuf-2.5.0]# make install
[root@nn01 protobuf-2.5.0]# protoc --version  (버전 확인 : 만일 에러 발생시 lfconfig ( 소문자 엘) 후 다시 protoc --version)

 

버전확인. 

 

 

12. JDK 8 설치 (nn01,dn01,dn02)

- 이제 tmp 폴더를 임시폴더로 해서 설치할 것. 다시 tmp로 이동 후 install

[root@nn01 protobuf-2.5.0]# cd /tmp
[root@nn01 tmp]# yum install -y vim wget unzip

 

nothing to do라 떠도 괜찮다.

 

- 자바를 다이렉트로 다운로드 하자.

( Local에 이미 다운로드 한 경우 Winscp를 이용하여 업로드 )

- 압축 풀고 디렉토리까지 만들기. 경로를 하나씩 만들지 않기 위해 -p 옵션을 만들어줌.

사진 1번) 1.8.0_131이 있음을 확인할 수 있음

- jdk 옮기자. 131 안에로 전부 이동

- current라는 이름의 바로가기 만들기. 버전관리를 위해 심볼릭 링크를 셋다 걸어주기.

사진 2번) 자바 인스톨하면 에러뜸. -> 왜? 리눅스 자체가 버전관리 대상으로 껴버리기 때문에

[root@nn01 tmp]# wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz 
[root@nn01 tmp]# ls jdk*
[root@nn01 tmp]# tar -xvzpf jdk-8u131-linux-x64.tar.gz
[root@nn01 tmp]# mkdir -p /opt/jdk/1.8.0_131
[root@nn01 tmp]# ls /opt/jdk               (-> 사진 1번)
[root@nn01 tmp]# mv jdk1.8.0_131/* /opt/jdk/1.8.0_131/
[root@nn01 tmp]# ln -s /opt/jdk/1.8.0_131 /opt/jdk/current
[root@nn01 tmp]# install java with alternatives (에러)      (-> 사진 2번)

 

 


alternatives명령어

centos의 yum을 통해 java를 install하게 되면 버젼관리 대상으로 들어간다.

그리고 centos는 버젼관리를 위한 명령어를 제공하는데 그것이 바로 alternatives라는 명령어이다.


- 따라서 다음 명령어 지정해서 없애주어야 한다. - >번호는 1

[root@nn01 tmp]# alternatives --install /usr/bin/java java /opt/jdk/1.8.0_131/bin/java 2
[root@nn01 tmp]# alternatives --config java

 

 

번호 누르라고 하면 우리는 1밖에 없어서 1 누르기

 

- 다음 그대로 실행

[root@nn01 tmp]# alternatives --install /usr/bin/jar jar /opt/jdk/1.8.0_131/bin/jar 2
[root@nn01 tmp]# alternatives --install /usr/bin/javac javac /opt/jdk/1.8.0_131/bin/javac 2
[root@nn01 tmp]# alternatives --set jar /opt/jdk/1.8.0_131/bin/jar
[root@nn01 tmp]# alternatives --set javac /opt/jdk/1.8.0_131/bin/javac
[root@nn01 tmp]# java -version

 

버전 1.8.0_131 나오면 잘 된 것.

 

 

 

13. 본격적인 Hadoop 설치 (nn01 / dn01 / dn02)

- 다운 받아서 압축 풀고 2.7.7 디렉토리로 전부 이동. current라는 이름의 바로가기 만들기.

[root@nn01 tmp]# cd /tmp

[root@nn01 tmp]# wget http://apache.tt.co.kr/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
( 다운로드 속도가 너무 느리면 아래에서 다운받기 )
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

[root@nn01 tmp]# tar -xvzf hadoop-2.7.7.tar.gz
[root@nn01 tmp]# mkdir -p /opt/hadoop/2.7.7
[root@nn01 tmp]# mv hadoop-2.7.7/* /opt/hadoop/2.7.7/
[root@nn01 tmp]# ln -s /opt/hadoop/2.7.7 /opt/hadoop/current

 

[참고] 만약 위에것으로 다운받다가 중단하고 아래 것으로 다운받았다면?

 

[참고] ll로 용량 봐서 작은거 rm 지우고, mv로 이름 바꿔줌

 

 

14. Hadoop 사용자 추가

- 1) 일단 현재 사용자 root이고 소유권도 root가 가지고 있음. 이걸 하둡으로 옮겨준다.

- 2) 일단 넘겨주기 위해 유저 추가할 것. ( 비밀번호도 hadoop 으로 - 비밀번호 입력시는 글자표시 안됨 )

- 3) 소유권 이동( 루트에서 만든 파일의 권한을 hadoop에게 권함 )

- 4) 하둡으로 유저 변경

(하이푼( - ) 안쓰고 들어가면 설정한 환경변수까지 안가지고 옮겨짐. 하이푼 써야 설정한거까지 가져감.)

[root@nn01 tmp]# useradd hadoop
[root@nn01 tmp]# passwd hadoop
[root@nn01 tmp]# chown -R hadoop:hadoop /opt/hadoop/
[root@nn01 tmp]# su - hadoop
[root@nn01 ~]# 

 

14

 

15. Hadoop 자바 및 Hadoop 환경 변수 추가

- 설정파일 수정할 때는 MultiExe 보다 하나씩 하는 것이 나을 수도 있다.(하단부터 # 제외하겠음)

 

1) vi로 들어간다.

vi ~/.bash_profile

2) esc + o 해서 맨 하단에 아래 내용을 붙여넣자.

#### HADOOP 2.7.7 start ############

PATH=$PATH:$HOME/bin

export HADOOP_HOME=/opt/hadoop/current

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

#### HADOOP 2.7.7end############

#### JAVA 1.8.0 start#############

export JAVA_HOME=/opt/jdk/current

export PATH=$PATH:$JAVA_HOME/bin

#### JAVA 1.8.0 end##############

여기 또한 빈칸 조심.

 

3) 소스 명령어로 적용한다.(꼭 필요함)

source ~/.bash_profile

 

하둡 버전 2.7.7로 완료

 

16. 비밀번호없이 각노드를 접속할 수 있도록 공개키 공유(SSH) (중요!!!)

- 아직까지는 권한이 전부 root에게 있다. root로 이동한다.

su - root

 

root로 이동

 

 

- vi 접속한다.

[root@nn01 ~]# vi /etc/hosts

- localhost 꼭 지운다. ( 모든 노드 다 )

아래 내용을 그대로 입력해준다.

192.168.56.101 nn01
192.168.56.102 dn01
192.168.56.103 dn02

 

 

 

- (1) 키만들기 (Hadoop 계정에서 )

서로 다른 컴퓨터의 키값을 확인해보자.

( MultiExec 에서 하면 다른 키값을 생성되는 것을 볼 수 있다. )

[hadoop@nn01 ~]$ ssh-keygen
[hadoop@dn01 ~]$ ssh-keygen
[hadoop@dn02 ~]$ ssh-keygen

엔터만 3번친다.

 

빨간 부분이 얘네 키값이다. (루트가 아닌 하둡 계정으로 봐야함)

 

- (2) 키복사하기

( 여기서는 MultiExec 풀고 작업 - 각 노드별로 작업)

( 자기 자신에게도 복사를 해야 됨 )

[hadoop@nn01 ~]$ ssh-copy-id hadoop@dn01
[hadoop@nn01 ~]$ ssh-copy-id hadoop@nn01
[hadoop@nn01 ~]$ ssh-copy-id hadoop@dn02
[hadoop@dn01 ~]$ ssh-copy-id hadoop@dn01
[hadoop@dn01 ~]$ ssh-copy-id hadoop@nn01
[hadoop@dn01 ~]$ ssh-copy-id hadoop@dn02
[hadoop@dn02 ~]$ ssh-copy-id hadoop@dn01
[hadoop@dn02 ~]$ ssh-copy-id hadoop@nn01
[hadoop@dn02 ~]$ ssh-copy-id hadoop@dn02

yes > 비밀번호 hadoop 으로 설정.

 

- 패스워드없이 이동이 가능하다. ( 나올 때는 exit 또는 logout 으로 나온다 )

[hadoop@nn01 ~]$ ssh dn01

이런식으로 nn 컴퓨터에서 dn으로 로그인한 것이다.

 

17. hadoop설정 (중요!!!)

nn01에서 하고 dn01, dn02 전송하던가, 한 노드씩 같이 하던가 선택하자.

우선 nn01에서 작업하자.

<configuration> 내용 </configuration> -> 이 사이에 파란색 글자 내용 붙여넣기!!!


 

a. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://nn01:9000</value>

</property>

</configuration>

 

a번 그림

 

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

b. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

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

<value>nn01:50070</value>

</property>

<property>

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

<value>nn01:50090</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hadoop/hadoop_data/hdfs/namenode</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/hadoop/hadoop_data/hdfs/datanode</value>

</property>

<property>

<name>dfs.namenode.checkpoint.dir</name>

<value>file:/home/hadoop/hadoop_data/hdfs/namesecondary</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

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

c. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>nn01:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>nn01:8031</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>nn01:8032</value>

</property>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>nn01</value>

</property>

</configuration>

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

d. [hadoop@nn01 ~]$ cp /opt/hadoop/current/etc/hadoop/mapred-site.xml.template /opt/hadoop/current/etc/hadoop/mapred-site.xml

 

-> 실행만

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

e. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobtracker.hosts.exclude.filename</name>

<value>$HADOOP_HOME/etc/hadoop/exclude</value>

</property>

<property>

<name>mapreduce.jobtracker.hosts.filename</name>

<value>$HADOOP_HOME/etc/hadoop/include</value>

</property>

</configuration>

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

f. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/masters

nn01

입력하기

 

 

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

g. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/slaves

dn01
dn02

입력하기 (localhost 삭제하고 입력)

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

h. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/hadoop-env.sh

들어가서

# The java implementation to use.
export JAVA_HOME=/opt/jdk/current

수정

 

 

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

h. [hadoop@nn01 ~]$ vi /opt/hadoop/current/etc/hadoop/hadoop-env.sh

들어가서

# some Java parameters
export JAVA_HOME=/opt/jdk/current

수정


 

18. su root 로 계정 변환 가능하게 하기

- root 계정으로 이동하기 위해 버추얼박스에서 실행했던 가상머신 들어가기

 

 

 

### 각 계정마다 vi로 들어간 후 표시 부분을 주석처리한다. ###

- set nu 로 번호 보기.

- 10 11 12 라인 주석처리하기

 

각 게정마다 주석처리 후 하둡으로 계정 변환됨

 

 

- MobaXterm 에서도 계정 변환이 가능해졌다.

 

 

 

19. 계정의 소유권을 다시 설정

- hadoop설정을 nn01에서하고 dn01과 dn02에 복사 (winscp툴을 이용하거나 scp명령을 이용한다.

### 각 계정마다 # 이후 부분을 실행한다. ###

[nn01(root 계정)] 

a. [root@nn01 ~]# scp -r /opt/hadoop/* dn01:/opt/hadoop 
b. [root@nn01 ~]# scp -r /opt/hadoop/* dn02:/opt/hadoop 

[dn01(root 계정)] 심볼릭링크와 소유자를 다시 설정한다.  

a. [root@dn01 ~]# rm -rf /opt/hadoop/current 
b. [root@dn01 ~]# ln -s /opt/hadoop/2.7.7 /opt/hadoop/current 
c. [root@dn01 ~]# chown -R hadoop:hadoop /opt/hadoop/ 

[dn02(root 계정)] 심볼릭링크와 소유자를 다시 설정한다.

a. [root@dn02 ~]# rm -rf /opt/hadoop/current 
b. [root@dn02 ~]# ln -s /opt/hadoop/2.7.7 /opt/hadoop/current 
c. [root@dn02 ~]# chown -R hadoop:hadoop /opt/hadoop/

- ll /opt/hadoop 로 확인해보자.

 

아래처럼 뜨면 완료

 

 

20. 각노드에 Hadoop ~node 디렉토리 생성

- 각노드에서 해야 하니깐 MobaXterm 멀티창 끄기

(1) Hadoop namenode 디렉토리 생성 (nn01 : Namenode)
a. mkdir -p ~/hadoop_data/hdfs/namenode
b. mkdir -p ~/hadoop_data/hdfs/namesecondary

(2)  Hadoop datanode 디렉토리 생성 (dn01 : Datanode)
mkdir -p ~/hadoop_data/hdfs/datanode

(3) Hadoop datanode 디렉토리 생성 (dn02 : Datanode)
mkdir -p ~/hadoop_data/hdfs/datanode

 

21. Namenode 포맷

[hadoop@nn01 ~]# hadoop namenode -format

22. Daemon 시작

[hadoop@nn01 ~]# start-all.sh

 

23. 서비스 정상 확인

- MobaXterm 멀티창 띄워서 확인해본다.

jps

 

이러한 화면 뜨면 완료된 것.

 

24. 종료시 stop-all.sh 꼭 하기




=================================
최대한 복붙으로 해보려 했으나 설치조차 힘든 하둡.... 이번 기록으로 제에발 다음번엔 설치도 못하는 일은 없게 하자....!!!!

반응형
LIST

댓글