::: 데이터 분석 :::

HDP Sandbox 3.0.1 Docker 이미지로 Ambari 로그인하기

곰탱이푸우 2021. 10. 7. 08:20
## 참고사항 ##

빅데이터나 하둡 관련 전문가가 아니기 때문에 일부 부족한 내용이 있을 수 있습니다.
셋팅과 기본적인 사용 외에, 하둡과 관련 생태계 운영의 트러블 슈팅은 잘 모릅니다.
오픈소스 특성상 직접 조사하고 해결해야 하는 부분이 많습니다.  기본 셋팅 관련해서 참고만 부탁 드립니다.

 

이전 포스팅에서 HDP Sandbox에 대한 간략한 소개와 Docker 셋팅에 필요한 파일 다운로드를 진행했다.

 

HDP Sandbox 소개와 Docker 셋팅 파일 다운로드

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

그리고 HDP Sandbox 2.6.5 버전에 대한 설치와 Amabari 로그인하는 것도 진행했다.

 

HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

HDP Sandbox 3.0.1 버전을 구성하고 하둡 클러스터를 관리하는 Ambari에 로그인 하는 과정을 진행한다.

2.6.5 버전과 상당 부분 동일하므로 변경 사항 위주로 정리한다.

 

 

HDP Sandbox 개요

Sandbox 이미지는 VMware, VirtualBox, Docker 형태로 제공되고 있으며, 여기서는 Docker 중심으로 정리한다. 

3.0.1 버전의 Docker 이미지 크기는 약 21.2GB이다. VMware, VirtualBox는 22.1GB 정도이다.

또한 최소 10GB 이상의 메모리를 할당하도록 권장하므로 시스템은 최소 16GB 이상의 메모리가 필요하다. 

 

HDP 3.0.1에 기본 포함 된 Apache 프로젝트

HDP 3.0.1에 기본으로 포함 된 Apache 프로젝트는 다음과 같다. Hadoop과 Spark 관련 프로젝트를 우선 표시했다.

그 외에도 Hadoop 생태계의 거의 모든 프로젝트가 포함되어 있는 것을 알 수 있다.

  • Apache Hadoop 3.1.1
  • Apache Spark 2.3.1
  • Apache Zeppelin 0.8.0
  • Apache ZooKeeper 3.4.6
  • Apache Livy 0.5.0
  • Apache Accumulo 1.7.0
  • Apache Atlas 1.0.0
  • Apache Calcite 1.16.0
  • Apache DataFu 1.3.0
  • Apache Druid 0.12.1 (incubating)
  • Apache HBase 2.0.0
  • Apache Hive 3.1.0
  • Apache Kafka 1.1.1
  • Apache Knox 1.0.0
  • Apache Oozie 4.3.1
  • Apache Phoenix 5.0.0
  • Apache Pig 0.16.0
  • Apache Ranger 1.1.0
  • Apache Sqoop 1.4.7
  • Apache Storm 1.2.1
  • Apache Tez 0.9.1

 

HDP Sandbox 2.6.5 버전과 비교하여 Spark은 2.3.0에서 2.3.1로, Zeppelin은 0.7.3에서 0.8로 변경되었다.

Hadoop은 2.7.3에서 3.1.1로 변경되었으며, Livy는 0.4.0에서 0.5.0으로 변경되었다.

 

HDP Sandbox 이미지 시작시 자동 시작 되는 서비스

HDP Sandbox 이미지를 시작하면 다음과 같은 서비스들이 자동으로 시작된다.

 

HDP Services Started Automatically on Startup

  • Ambari - AmbariServer, Ambari Agent
  • HDFS - Portmap, NameNode, DataNode
  • Spark2 - HistoryServer, Livy server run as livy, Thrift server
  • YARN - ApplicationHistoryServer, ResourceManager, NodeManager
  • Hive- RunJar – webhcat, RunJar – metastore, RunJar – hiveserver2
  • Ranger - UnixAuthenticationService, EmbededServer
  • Zookeeper - QuorumPeerMain
  • Zeppelin Notebook
  • Nfs - Portmap
  • Mapreduce2 - JobHistoryServer
  • Oozie - Bootstrap
  • Data Analytics Studio

 

HDP Sandbox 3.0.1의 구성 패키지 변경 사항

HDP 3.0.1에 다음 패키지가 추가되었다.

  • Data Analytics Studio 1.0.2.1.0.2.0-6

 

HDP 3.0.1에 다음 패키지가 제외되었다.

  • Apache Falcon
  • Apache Flume
  • Apache Mahout
  • Apache Slider

 

자세한 내용은 아래 페이지를 참고한다. 

 

HDP

Thank you for contacting us. Someone will be in touch shortly to discuss your Hortonworks needs.

docs.cloudera.com

 

 

Docker Image 정보

Docker HDP 가상 이미지의 운영체제와 Java 버전은 다음과 같다.

OS Version (HDP container)   CentOS release 7.5.1804 (Core)
Java Version (docker container)  openJDK version “1.8.0.191”
 OpenJDK Runtime Environment (build 1.8.0_191-b12)
 OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
기타  Python 2.7.5
 PostgreSQL 9.6.11
 MySQL server 5.7.24
 MySQL connector 5.1.25-3

 

Docker 환경 설정

HDP Docker 이미지를 다운로드 하기 위해서는 먼저 설치하려는 시스템에 Docker가 설치되어 있어야 한다.

진행 과정은 아래 페이지에 정리되어 있다.

 

Deploying Hortonworks Sandbox on Docker

Deploying Hortonworks Sandbox on Docker

www.cloudera.com

 

Docker 설치

Docker는 18.03 또는 그 이후 버전이 필요하다.

 

아래 페이지를 참고하여 설치를 진행한다.

 

Install Docker Engine on Ubuntu

 

docs.docker.com

 

Install Docker Desktop on Windows

 

docs.docker.com

 

Install Docker Desktop on Mac

 

docs.docker.com

 

 

 

Docker RAM 설정

램 여유 공간은 최소 10-12GB 정도가 필요하다.

설정 방법은 다음과 같다.

구분 내용
Memory for Linux 별도 과정이 필요하지 않다.
Memory for Windows 32G인 경우 16G, 16G인 경우 10G 정도가 적당하다.

윈도우의 경우 메모리 과점유 문제가 발생할 수 있어 아래 내용을 참고한다.
https://meaownworld.tistory.com/160
Memory for Mac Docker -> Preferences -> Advanced -> CPU 2개, Memory 8GB 설정

 

Bash Shell 사용 가능 여부 확인

윈도우 사용자는 bash shell을 사용할 수 있는지 확인해야 한다.

 

Powershell 사용 (윈도우 10)

윈도우 10 사용자는 Powershell에서 bash shell을 사용할 수 있다.

 

윈도우 10에서 bash shell을 활성화 하는 방법은 아래 포스팅을 참고한다.

 

윈도우10 Linux Bash Shell 설치 및 사용 방법

HowTo - Windows 10에서 Linux Bash Shell 설치 및 사용 방법 안내  Microsoft는 Canonical과 협력하여 윈도우 하위 시스템에서 실행되는 Ubuntu 기반의 Bash Shell 환경을 제공하고 있으며 Debian, Ubuntu 및 O..

forbes.tistory.com

 

git-scm 사용

윈도우 10이 아니거나 bash shell만 사용하려는 경우 git-scm을 설치하면 git에 내장 된 bash shell을 사용할 수 있다.

 

다음 페이지를 참고한다.

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

git-scm 설치 방법은 다음 포스팅을 참고한다.

 

윈도우 환경에서 git-scm 설정하기

우분투 환경에서는 sudo apt install git 명령만 실행하면 git 설치가 쉽게 진행되지만, 윈도우에서는 별도 설치 패키지가 필요하다. 일반적으로 윈도우 환경에서 가장 유명한 것은 git-scm으로 알려져

www.bearpooh.com

 

설치 완료 후 git bash를 사용하면 bash shell을 사용할 수 있다.

 

 

Docker 설치 스크립트 다운로드

이전 포스팅을 참고하여 HDP Sandbox의 Docker 셋팅에 필요한 파일 다운로드를 진행한다.

 

HDP Sandbox 소개와 Docker 셋팅 파일 다운로드

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

임의의 폴더에 압축을 해제한다. Docker 이미지를 다운로드 할 수 있는 docker-deploy-hdp30.sh 파일을 확인할 수 있다. 

 

Docker 설치 스크립트 수정

터미널을 열고 해당 sh 파일의 위치로 이동하고, 아래 sh 파일들을 수정한다.

 

docker-deploy-hdp30.sh

이 파일은 Sandbox HDP와 Sandbox Proxy Docker 이미지를 다운로드하고 컨테이너로 실행하는 기능을 수행한다.

아래 포스팅의 docker-deploy-hdp265.sh항목을 참고하여 진행한다.

 

HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

assets/generate-proxy-deploy-script.sh 

이 파일은 Sandbox HDP 컨테이너가 사용하는 포트에 대해 nginx를 사용해서 내부 포트와 외부 포트를 연결하는 기능을 수행한다.

아래와 같이 수정한다.

1) registry 항목을 수정한다.

# 수정 전 (3번 라인)
registry="hortonworks"

# 수정 후
registry="Docker저장소URL:포트/hortonworks"

# ex. "docker.repository.com:50000/hortonworks"

 

2) 시작 부분의 if ~~ fi 구문 수정

# 수정 전 (4~10번 라인)
if [ "$flavor" == "hdf" ]; then
  hdfEnabled=true
  hdpEnabled=false
elif [ "$flavor" == "hdp" ]; then
  hdfEnabled=false
  hdpEnabled=true
fi

# 수정 후
hdfEnabled=false
hdpEnabled=true

 

3) 조건문의 ==를 =로 수정 (MacOS의 경우)

 

4) Livy 포트는 포함되어 있지 않으므로 다음과 같이 추가한다.

# 수정 전

tcpPortsHDP=(
... 생략 ...
[8983]=8983
[8993]=8993
[9000]=9000
[9996]=9996
... 생략 ...

# 수정 후
tcpPortsHDP=(
... 생략 ...
[8983]=8983
[8993]=8993
### 추가 된 부분 시작 ###
[8998]=8998
[8999]=8999
### 추가 된 부분 끝 ###
[9000]=9000
[9996]=9996
... 생략 ...

 

 

HDP Sandbox Docker 이미지 설치

다음 명령을 실행해서 스크립트를 실행한다.

$ bash ./docker-deploy-hdp30.sh

다운로드와 컨테이너 실행이 완료되면 다음과 같이 나타난다.

 

다운로드 및 설치가 완료되면 정상적으로 다운로드 되었는지 확인한다.

 

아래 명령어를 입력해서 HDP 컨테이너가 정상적으로 실행 중인지 확인한다. sandbox-proxy, sandbox-hdp 컨테이너가 실행 중이어야 한다.

$ docker ps -a

 

 

컨테이너들은 다음과 같은 방법으로 사용 가능하다.

1) HDP SANDBOX 중단 (STOP/SHUTDOWN HDP SANDBOX)

$ docker stop sandbox-hdp 
$ docker stop sandbox-proxy

 

2) HDP SANDBOX 재시작 (RESTART HDP SANDBOX)

$ docker start sandbox-hdp 
$ docker start sandbox-proxy

 

3) HDP SANDBOX 컨테이너 제거 (REMOVE HDP SANDBOX)

$ docker stop sandbox-hdp 
$ docker stop sandbox-proxy 

$ docker rm sandbox-hdp 
$ docker rm sandbox-proxy

 

4) HDP SANDBOX 이미지 제거 (REMOVE HDP SANDBOX IMAGE)

$ docker stop sandbox-hdp 
$ docker stop sandbox-proxy 

$ docker rmi hortonworks/sandbox-hdp:{버전}
$ docker rmi hortonworks/sandbox-proxy:{버전}

 

 

hosts 파일 수정

아래 포스팅의 hosts 파일 수정 항목을 참고하여 진행한다.

 

HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

정상 접속 여부 확인

아래 포스팅의 정상 접속 여부 확인 항목을 참고하여 진행한다.

 

HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

admin 계정 비밀번호 변경

아래 포스팅의 admin 계정 비밀번호 변경 항목을 참고하여 진행한다.

 

HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기

참고사항 본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다. 빅데이터나 하둡 관련 전문가가 아니기 때문에

www.bearpooh.com

 

Ambari 로그인

Ambari에 접속한다. HDP Sandbox 2.6.5의 Ambari보다 훨씬 깔끔하다.

 

Ambari에 로그인하면 다음과 같은 Dash Board를 확인할 수 있다.

이후 과정은 Ambari에서 서비스 패키지들을 설치하고 관리할 수 있다. 

 

Ambari의 All Service Start

컨테이너를 활성화 시키고 Ambari에 접속해보면 각 서비스들이 빨간색으로 표시되고 Alert이 많이 발생할 수 있다.

  • HDP Sandbox 컨테이너를 실행하면 기본적으로 All Service Start 기능이 자동으로 실행된다.
  • 컨테이너 실행 후 약 10분 정도 지나야 모든 서비스를 정상적으로 사용할 수 있다.
  • 화면 좌측의 Services 옆에 있는 ... 클릭 → Start All 또는 Restart All Required를 클릭하면 모든 서비스들이 재시작 되며 해결 가능하다. (약 7~8분 소요)

 

빌드 머신 같은 환경에서 사용하고자 하는 경우 컨테이너 실행 후 10분 정도 대기 시간을 설정할 필요가 있다.

 

Ambari 사용

이후 과정은 Ambari에서 제공하는 기능들을 사용하여 진행한다.

  • HDP Sandbox 개요에서 언급한 Hadoop 관련 서비스 설치 및 관리
  • Hadoop 관련 서비스의 파일 관리 - 업로드 / 다운로드 포함 

 

 

Docker 컨테이너의 root 계정 비밀번호 변경하기

Sandbox HDP Docker 컨테이너의 비밀번호를 변경하고자 하는 경우 다음과 같이 진행한다.

# 아래 명령으로 접속하고 기존 비밀번호로 로그인한다.
$ ssh root@sandbox.hortonworks.com -p 2222

# 각 항목은 다음을 의미한다.
# root@sandbox.hortonworks.com - 접속하려는 HDP Sandbox의 계정과 URL
# -p 2222 - SSH 포트번호

# root 계정 비밀번호를 변경한다.
$ passwd root

# 각 항목은 다음을 의미한다.
# passwd - 비밀번호 변경

 

HDP Sandbox에서 사용하는 포트 목록 

HDP Sandbox는 nginx를 사용하여 Host PC의 포트를 HDP Sandbox의 포트로 포트 포워딩한다.

사용하는 포트 목록은 다음과 같다.

Hadoop, Ambari, Yarn, Spark, Zookeeper, Jupyter, Zeppelin은 굵게 강조하였다.

외부 내부 비고   외부 내부 비고
1080 1080 Splash Page   15000 15000 Falcon
2122 22 HostSSH   16010 16010 HBaseMaster
2181 2181 Zookeeper   16030 16030 HBaseRegion
2200 22 HostSSH2   18080 18080 SparkHistoryServer
2201 2201 SSH HDP CDA   19888 19888 JobHistory
2202 2202 Sandbox SSH 2   21000 21000 Atlas
2222 2222 DockerSSH   30800 30800 DAS
4040 4040 Spark   42080 80 Apache
4200 4200 AmbariShell   42111 42111 nfs
4557 4557 NiFi DistributedMapCacheServer   50070 50070 WebHdfs
6080 6080 XASecure   50075 50075 Datanode
6627 6627 Storm Nimbus Thrift   50095 50095 Accumulo
6667 6667 Kafka   50111 50111 WebHcat
7777 7777 Streaming Analytics Manager   60080 60080 WebHBase
7788 7788 Schema Registry   61080 61080 NiFi Registry
8000 8000 Storm Logviewer   61888 61888 Log Search
8020 8020 HDFS   111 111 Port for custom use
8032 8032 Yarn Resource Manager   2049 2049 Port for custom use
8040 8040 NodeManager   3000 3000 Port for custom use
8042 8042 NodeManager   4242 4242 Port for custom use
8080 8080 ambari   8005 8005 Port for custom use
8081 8081 Druid2   8082 8082 Port for custom use
8088 8088 YARN   8086 8086 Port for custom use
8188 8188 YarnATS   8090 8090 Port for custom use
8198 8198 YarnATSR   8091 8091 Port for custom use
8443 8443 Knox   8765 8765 Port for custom use
8585 8585 Streams Messaging Manager   10015 10015 Port for custom use
8744 8744 StormUI   10016 10016 Port for custom use
8886 8886 AmbariInfra   10502 10502 Port for custom use
8889 8889 Jupyter   15002 15002 Port for custom use
8983 8983 SolrAdmin   15500 15500 Port for custom use
8993 8993 Solr   15501 15501 Port for custom use
9000 9000 HST   15502 15502 Port for custom use
9088 9088 NiFi Protocol   15503 15503 Port for custom use
9089 9089 Druid1   15504 15504 Port for custom use
9090 9090 Nifi   15505 15505 Port for custom use
9091 9091 NiFi UI HTTPS   16000 16000 Port for custom use
9995 9995 Zeppelin1   16020 16020 Port for custom use
9996 9996 Zeppelin2   18081 18081 Port for custom use
10000 10000 HS2   33553 33553 Port for custom use
10001 10001 HS2Http   39419 39419 Port for custom use
10002 10002 HiveJDBCJar   50079 50079 Port for custom use
10500 10500 HS2v2   60000 60000 Port for custom use
11000 11000 Oozie        

 

자세한 사항은 아래 문서를 참고한다.

 

Sandbox Port Forwards - HDP 3.0.1

Sandbox Port Forwards - HDP 3.0.1

www.cloudera.com

 

 

참고사항

Docker Hub에서 sandbox-hdp로 검색해보면 해당 Docker 이미지를 찾을 수 있다.

 

Docker Hub

 

hub.docker.com

 

 

설명 페이지에 2.6.5 버전 설치를 안내하고 있지만, 해당 Tags를 클릭하면 3.0.1과 2.6.5 버전을 확인할 수 있다.