Hortonworks Data Platform 설치 방법 3 (Docker)

 

해당 포스트는 “하둡 테스트베드(Hortonworks Data Platform, HDP) 설치”로부터 넘어왔습니다.

 

Hortonworks Data Platform (HDP)을 Docker 컨테이너 기반으로 구축하는 가이드입니다.

 

Docker 설치


  1. repository 설치
sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

 

2. Docker 설치

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

 

HDP 설치


wget https://archive.cloudera.com/hwx-sandbox/hdp/hdp-3.0.1/HDP_3.0.1_docker-deploy-scripts_18120587fc7fb.zip
unzip HDP_3.0.1_deploy-scripts_18120587fc7fb.zip

cd HDP_3.0.1_deploy-scripts_18120587fc7fb
sh docker-deploy-hdp30.sh

 

Docker ps 명령어를 사용하여 sandbox-hdpsandbox-proxy가 동시에 작동하고 있는지 확인해 주세요. 만일 sandbox-hdp만 활성화되어있을 시에는 아래 설치 주의사항2 항목을 참고해주세요.

 

HDP 운영 대시보드인 Ambari의 admin 계정 비밀번호를 아래와 같이 초기화해줍니다.

# HDP 컨테이너 쉘 접속
winpty docker exec -it sandbox-hdp bash

# Ambari admin 비밀번호 초기화
$ ./sbin/ambari-admin-password-reset

 

이제 브라우저를 열고 localhost:8080을 주소창에 검색하면 Ambari 페이지에 접속할 수 있습니다. Username에는 admin을 입력하고 Password 부분에는 앞서 초기화한 비밀번호를 입력합니다.

 

좌측의 Services 탭에 있는 ... 아이콘을 클릭 ▶ Start All 항목을 선택. 이제 각종 Hadoop 프로젝트들이 백그라운드에서 동작하게 됩니다.

 

설치 주의사항


 

1. 과다한 시스템 자원 점유 문제

HDP는 기본적으로 CPU와 메모리 자원을 상당히 많이 잡아먹습니다.

 

가급적 램 용량이 넉넉한 PC에 구축이 되어야 하며, HDP 사용을 하지 않을 때는 sandbox-hdpsandbox-proxy를 꺼두는 게 좋습니다.

docker container stop sandbox-proxy
docker container stop sandbox-hdp

 

HDP가 메모리를 과다하게 점유하면 다른 프로세스가 영향을 받을 수 있으므로, 메모리 최대 사용 한도를 설정하는 편이 좋습니다.

 

Windows의 경우 C드라이브 user 폴더에 .wslconfig 파일을 만들어 놓으면 Windows Subsystems for Linux(WSL)에서 사용하는 메모리 용량과 프로세서 수를 제한할 수 있습니다.

# C:\Users\[User 명]\.wslconfig

[wsl2]
memory=10GB
swap=0
processors=4

 

단, 메모리 상한 값을 HDP의 최소 요구 사항인 10GB보다 낮게 설정하면 일부 Hadoop 프로세스들에게서 Out-of-Memory (OOM) 이슈가 발생함과 동시에 중단될 수 있으니 주의해주세요.

 

2. Sandbox-Proxy가 중단되는 현상

HDP가 정상적으로 설치됬다면 2개가 컨테이너 sandbox-hdpsandbox-proxy가 동작해야 합니다.

 

그러나 간혹 sandbox-proxy가 제대로 실행되지 않는 경우가 있습니다.

 

sandbox-proxy 컨테이너를 직접 실행했을 때, 아래와 같은 메시지가 나올 수도 있는데요.

docker start sandbox-proxy

> Error response from daemon: Ports are not available: listen tcp 0.0.0.0:50079: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
> Error: failed to start containers: sandbox-proxy

 

이런 경우는 Powershell을 관리자 권한으로 연 뒤에, Windows NAT를 잠시 껐다 다시 활성화시키는 방법으로 해결합니다.

net stop winnat
docker start sandbox-proxy
net start winnat

 

3. Ambari 서버가 갑자기 중단되는 현상

메모리가 부족한 경우, 일부 서비스의 활성화가 실패하여 Ambari 페이지의 동작이 멈출 때가 있습니다. 대게 다른 서비스들은 멀쩡한데, Ambari 페이지에서만 502 Bad Gateway 메시지가 나타나는 경우입니다.

 

당장 해결할 수 있는 방법은 HDP 컨테이너에 접속하여 Ambari 서비스를 재시작하는 것입니다.

winpty docker exec -it sandbox-hdp bash

$ service ambari-server start

 

물론 메모리가 부족하면 해당 문제는 앞으로도 계속 반복될 가능성이 높습니다. HDP의 여러 프로젝트를 동시에 운용하고자 한다면 우선 메모리를 충분히 확보해야 합니다.

 

아니면, 필수 Hadoop 프로젝트만 남겨두고 나머지(Hive, Oozie가 특히 메모리 소모가 큽니다)는 메모리를 아끼기 위해 필요할 때만 활성화시키는 것을 추천드립니다.

반응형