빅데이터/하둡 2

하둡 2.0 튜토리얼 - (4) 하둡 실행

Johnny Yoon 2019. 7. 21. 18:20
728x90
반응형

 

하둡 실행

하둡을 실행하기 위해서는 앞서 했던 설정파일들을 오타 없이 잘 작성하셔야 합니다.

(저는 한글자 오타 때문에 고생을 많이 했습니다.)

무언가 실행이 잘 되지 않을때는 꼭 로그파일들을 확인하시기 바랍니다.

 

하둡을 실행하기 위한 프로세스는 다음과 같습니다:

  1. 주키퍼 포맷
  2. 3개의 저널노드 실행
  3. Active 네임노드 실행
  4. Standby 네임노드 실행
  5. 주키퍼 장애 컨트롤러 (zkfc)실행
  6. 데이터노드 실행
  7. 얀 클러스터 실행
  8. 히스토리서버 실행

 

alias등록

먼저 하둡 실행 및 운영을 위해 미리 편리한 alias들을 등록해두겠습니다.

.bashrc 파일을 열어 다음과같은 alias들을 등록해줍니다.

alias hadoop="~/hadoop/sbin/hadoop-daemon.sh"
alias hdfs="~/hadoop/bin/hdfs"
alias yarn="~/hadoop/bin/yarn"

그리고 source .bashrc 커맨드를 이용해 alias들을 적용해줍니다.

 

주키퍼 포맷

먼저 하둡을 실행하기 위해서는 주키퍼를 초기화 해주어야 합니다.

doop01기기에서 다음 커맨드로 먼저 주키퍼를 포맷해주겠습니다.

> hdfs zkfc -formatZK

 

저널노드

이제 doop01부터 doop03까지 저널노드를 설정한 기기들에서

각각 저널노드를 시작해주도록 하겠습니다.

위의 .bashrc파일을 각 기기에 설정해주셨다면 (혹은 scp로 전송해주셨다면)

아래의 커맨드로 실행이 가능합니다.

> hadoop start journalnode

 

Active 네임노드 실행

이제 Main이 되는 Active 네임노드를 실행하도록 하겠습니다.

doop01기기에서 다음 커맨드를 사용해 먼저 hdfs를 포맷(초기화)해줍니다.

> hdfs namenode -format

 

그리고 Active 네임노드를 실행합니다.

> hadoop start namenode

 

Stanby 네임노드 실행

이제 대기중인 Standby 네임노드를 실행합니다.

먼저 doop02기기에서 아래 커맨드를 사용해 active네임노드의 메타데이터를 복사해옵니다.

> hdfs namenode -bootstrabStandby

 

이 커맨드가 성공하면 다음과 같은 로그가 나옵니다.

(ip는 제가 임의로 수정해주었습니다. 실제로는 doop01의 ip가 나와야합니다.)

=====================================================
About to bootstrap Standby ID nn2 from:
           Nameservice ID: doop-cluster
        Other Namenode ID: nn1
  Other NN's HTTP address: http://doop01:50070
  Other NN's IPC  address: doop01/192.168.1.1:8020
             Namespace ID: 655142388
            Block pool ID: BP-1145003703-192.168.1.1-1563595795113
               Cluster ID: CID-339cb533-996b-4497-9b48-dd7749f351f1
           Layout version: -63
       isUpgradeFinalized: true
=====================================================

 

포맷이 완료되면 standby네임노드를 실행합니다.

> hadoop start namenode

 

주키퍼 장애 컨트롤러 (zkfc)실행

이제 네임노드의 각 장비 doop01~02에서 zkfc를 실행해줍니다.

지난 포스팅에서 언급하였지만, 주키퍼가 Active 네임노드의 장애여부를 판단하고,

장애가 발생하였을 때 Standby네임노드를 Active로 바꿔줍니다.

> hadoop start zkfc

 

데이터 노드 실행

이제 Active 네임노드 서버에서 데이터노드들을 실행해줍니다.

각 기기 doop01~04에서 아래 커맨드를 실행합니다.

> hadoop start datanode

 

alias 추가

나머지 서버 실행을 위해 추가적인 alias를 doop01기기에만 적용해주었습니다.

alias yarn-start="~/hadoop/sbin/start-yarn.sh"
alias yarn-stop="~/hadoop/sbin/stop-yarn.sh"
alias hadoop-history="~/hadoop/sbin/mr-jobhistory-daemon.sh"

 

yarn실행

doop01서버에서 얀 클러스터를 실행합니다.

바로 위의 추가 alias를 등록하셨다면 아래를 바로 실행하시면 됩니다.

> yarn-start

 

히스토리 서버

히스토리 서버는 맵리듀스 작업의 히스토리를 기록해놓는 서버입니다.

doop01과 doop02서버에서 이를 시작해주면 설치가 끝이 납니다.

> hadoop-history start historyserver

 

서버 구동 확인

이제 각 서버들이 잘 구동중인지 확인하겠습니다.

doop01과 doop02에서 jps를 실행하면 다음과같이 총 8줄의 로그가 나와야합니다.

(프로세스 번호와 순서는 다를 수 있습니다.)

1457 NodeManager
1960 JobHistoryServer
1258 DataNode
1068 NameNode
1996 Jps
877 JournalNode
1727 DFSZKFailoverController

 

doop03기기에서는 다음과 같이 나옵니다.

30689 Jps
30563 NodeManager
30439 DataNode
30366 JournalNode

 

마지막으로 doop04기기에서는 다음과같이 나옵니다.

32023 Jps
31849 NodeManager
31742 DataNode

 

웹 인터페이스

하둡 2의 웹 인터페이스를 확인하겠습니다.

Active 네임노드는 doop02:50070으로

Standby 네임노드는 doop01:50070으로 접속하시면 확인하실 수 있습니다.

Active 네임노드의 웹 인터페이스
Standby 네임노드의 웹 인터페이스

 

이로서 하둡2의 설치를 마쳤습니다.

 

참고자료

이 포스팅은 "시작하세요! 하둡 프로그래밍" 책의 예제를 무작정 따라해본 포스팅입니다.

https://wikibook.co.kr/beginning-hadoop-programming-2rev/

728x90
반응형