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 로 할당할 서버를 만들어 실습하는 것이 손에 더 잘 잡히고 직관적이며, 선형확장을 하기위한 원리와 과정 자체를 익힐 필요가 있다고 생각한다)
필요 요건
- Docker 설치가 되어있어야 한다.
- 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
- Cloudera QuickStart - Installation Using Docker Container on Ubuntu - Part 1
- Cloudera QuickStart - Starting Cloudera Manager on already running Docker Container - Part 2