Lovetoken

저는 개발 취향을 가진 데이터 분석가 Jr. 입니다.

Navigation
 » Home
 » About Me
 » Github

Docker 를 통해 Cloudera Manager 띄워보기

22 Apr 2018 » Docker, Mac, OpenSource_Tool



Cloudera Manager(이하 CM) 실습환경을 구성하기 위해 Virtual Box 로 CentOS 설치 및 환경설정 구성을 수차례 반복하여 힘겹게 성공 후
이 성공을 쉽게 재활용하기 위해 스냅샷을 저장했던 어느 날 내 맥북의 물리적 용량이 바닥이 나버렸다..
물리적 용량도 용량이지만 가상머신 3대를 켜 놓고 소프트웨어를 배포하는 과정 중에서 내 맥북은 한계에 도달했는지 자주 멈추어 버렸다.
결국은 Docker를 이용하겠어! 라는 결심과 동시에 행동으로 옮겼다.
약 30분1만에 Docker 를 통해 Cloudera Manager 을 실행시키는 데 성공했다.
Virtual Box 로 교재에 똑같이 따라 해서 띄우는 데는 순수하게 10시간 정도의 시행착오를 겪은 것 에 비하면 정말 순식간이었다. (물론 이런 삽질이 있었기에 Docker 에서 30분밖에 안 걸린 것일 수 있다 ;)

필자와 같이 실습을 진행하는 분께도 온전히 30 분만에 CM 환경구성을 할 수 있도록 본 글을 통해 정리하고자 한다.
또한 내용들의 대부분은 "cloudera manager on docker" 라는 검색어로 구글에 검색된 글들에 기반함을 밝힌다.

(단 Datanode 를 늘리는 확장성을 고려한 실습은 이 글에서는 논외이다. 오직 CM 를 띄우고 이를 통해 할 수 있는 것들이 무엇이 있는지, 인터페이스는 어떠한지 입문자용으로써 공부를 위한 환경구성이 목적이기에 Datanode 의 선형확장까지를 고려한 실습이라면 내생각엔 Cloudera QuickStart 컨테이너를 이용한 본 글보단 VM 을 통해 실제로 Datanode 로 할당할 서버를 만들어 실습하는 것이 손에 더 잘 잡히고 직관적이며, 선형확장을 하기위한 원리와 과정 자체를 익힐 필요가 있다고 생각한다)



필요 요건

  1. Docker 설치가 되어있어야 한다.
  2. online 상태이어야 한다. (인터넷이 되어야 한다)



30분의 과정

Cloudera 에서는 docker container 를 통해 CM 을 띄우기 위한 Cloudera QuickStart 문서를 제공해 주고 있다.
그대로 따라해 본 걸 한글화 시킨 것으로 이글을 봐도 무방하겠다.

첫 번째로 터미널을 킨 후

docker pull cloudera/quickstart:latest

를 통해 Cloudera QuickStart 도커이미지 최신버전을 다운로드 한다.
필자의 환경에선 수십분의 시간이 걸렸으니 차분히 기다린다.
완료가 되었다면

docker images

를 실행해 Cloudera QuickStart docker image 가 준비되었는지 한번 확인해 본다.



cloudera/quickstart 이미지의 ID 는 4239cd2958c6, 이미지 용량은 6.34Gb 임을 확인할 수 있다.

두 번째로 컨테이너를 실행한다

docker run --hostname=quickstart.cloudera --privileged=true -t -i [OPTIONS] [IMAGE] /usr/bin/docker-quickstart

에서 [OPTIONS] 부분은 -p 80:80 -p 7180:7180 -p 8888:8888 로 입력해 호스트간의 포트번호 80, 7180, 8888 을 열어 놓는다.
[IMAGE] 부분은 이미지 ID 인 4239cd2958c6 를 입력한다. 즉

docker run --hostname=quickstart.cloudera --privileged=true -t -i -p 80:80 -p 7180:7180 -p 8888:8888 4239cd2958c6 /usr/bin/docker-quickstart

를 터미널에서 실행한다.



이후 localhost 의 80번 포트로 접속2을 웹브라우저에서 해보면 "Welcome to Your Cloudera QuickStart VM!" page 가 반기게 되며, 8888번 포트로는 Hue가 뜨는것을 볼 수 있다.





그런데 그것보단 내 관심사는 7180번 포트인데 CM 이 디폴트로 사용하는 포트번호이다.
하지만 접속을 해보면 이렇게 뜬다.



clouder quickstart 컨테이너는 기본적으로 CM 을 같이 실행하지 않는다고 한다. 따라서

세 번째로 clouder quickstart 컨테이너상에서 /home/cloudera/cloudera-manager --express 명령을 입력하여 CM 을 실행시킨다

Cloudera QuickStart 컨테이너의 bash 에서 아직 빠져나오지 않았다면 /home/cloudera/cloudera-manager --express 를 그대로 실행시키면 되고

컨테이너 밖으로 빠져나온 호스트 상의 상태라면 docker ps 를 통해 실행되고 있는 clouder quickstart 컨테이너 ID 를 알아낸 후 docker 의 exec 명령을 이처럼 이용해도 된다.

docker exec [CONTAINER_ID] /home/cloudera/cloudera-manager --express

[CONTAINER_ID] 이 부분을 clouder quickstart 컨테이너 ID 를 입력하면 된다.
여하튼 그 결과는 아래와 같이 진행된다.



약간의 시간이 걸린다.
접속 계정과 비밀번호는 cloudera 이다라는 문구가 뜨면 로컬호스트의 7180 포트로 접속시 CM 로그인 화면을 볼 수 있게 된다.









Reference


  1. 이 30분 중에서도 docker image 를 pull(다운로드) 하는 데에 20분 정도가 걸렸으므로 10분의 고민만 필요했다고 볼 수 있다

  2. http://127.0.0.1:80/ 주소로 접속