HDP SANDBOX on SoftLayer by Rancher

@maru1981 님의 HDP SANDBOX on AWS EC2 을 참고로, SoftLayer상에서 HDP SANDBOX의 Docker 컨테이너를 가동시켜, Rancher로 관리할 때까지를 시도해 온 기록입니다.

1.SoftLayer에서 서버 준비



SoftLayer상에 가상 서버(1대)를 다음의 구성으로 작성합니다.


품목
설정 내용
비고


데이터 센터
SJC01 - 산호세
Hortonworks 본사 근처에서!

Computing Instance
4 x 2.0 GHz 코어
-

RAM
16GB
8GB 이상 필요합니다.

디스크
100GB
1대로 OK입니다.

Operating System
CentOS7.x - Minimal Install(64 bit)
HDP SANDBOX는 확실히 RHEL계였기 때문에 CentOS로 했습니다.


2.Docker 설치



최신 Docker-engine을 설치합니다.
작업은 루트 사용자로 수행했습니다.
# yum update -y

# wget -qO- https://get.docker.com/ | sh
+ sh -c 'sleep 3; yum -y -q install docker-engine'
warning: /var/cache/yum/x86_64/7/docker-main-repo/packages/docker-engine-1.12.3-1.el7.centos.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 2c52609d: NOKEY
Public key for docker-engine-1.12.3-1.el7.centos.x86_64.rpm is not installed
Importing GPG key 0x2C52609D:
 Userid     : "Docker Release Tool (releasedocker) <[email protected]>"
 Fingerprint: 5811 8e89 f3a9 1289 7c07 0adb f762 2157 2c52 609d
 From       : https://yum.dockerproject.org/gpg
restorecon:  lstat(/var/lib/docker) failed:  No such file or directory
warning: %post(docker-engine-selinux-1.12.3-1.el7.centos.noarch) scriptlet failed, exit status 255
Non-fatal POSTIN scriptlet failure in rpm package docker-engine-selinux-1.12.3-1.el7.centos.noarch

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

# docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

yum install docker 로의 인스톨은 CentOS 의 디스트리뷰션으로서의 Docker 가 되어, 버젼은 docker.x86_64 0:1.10.3-46.el7.centos.14 이므로, 공식의 Docker-engin 의 최신판을 인스톨 한다 만약 wget -qO- htps : // 게이 t. 두 c r. 코m/ | sh 입니다.

3.Docker 설정



a.Base Device Size 변경



Base Device Size가 기본 10GB라면 HDP의 이미지 용량이 크게 docker load로 실패한다는 것이므로 10GB에서 30GB로 변경합니다.
# cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service

# vi /etc/systemd/system/docker.service
=========================================================
ExecStart=/usr/bin/dockerd
↓変更
ExecStart=/usr/bin/dockerd --storage-opt=dm.basesize=30G
=========================================================
:wq

# systemctl daemon-reload

# systemctl restart docker

# docker info
(中略)
Base Device Size: 32.21 GB

b.HDP SANDBOX 이미지 로드



먼저 HDP SANDBOX 이미지를 다운로드합니다.
# wget http://hortonassets.s3.amazonaws.com/2.5/HDP_2.5_docker.tar.gz

다운로드한 HDP SANDBOX 이미지를 docker load합니다.
조금 시간이 걸립니다.
# docker load < HDP_2.5_docker.tar.gz
docker load < HDP_2.5_docker.tar.gz
b1b065555b8a: Loading layer 202.2 MB/202.2 MB
3901568415a3: Loading layer 13.85 GB/13.85 GB
Loaded image: sandbox:latest

# docker images
sandbox                   latest              a4150ee4e70b        5 weeks ago         13.96 GB

4. HDP SANDBOX 시작



시작 스크립트를 만듭니다.
공식 start_sandbox.sh 내용을 여기에서 복사합니다.
# vi start_sandbox.sh
=======================================================================
#!/bin/bash
echo "Waiting for docker daemon to start up:"
until /usr/bin/docker ps 2>&1| grep STATUS>/dev/null; do  sleep 1; done;  >/dev/null
/usr/bin/docker ps -a | grep sandbox
if [ $? -eq 0 ]; then
 /usr/bin/docker start sandbox
else
docker run -v hadoop:/hadoop --name sandbox --hostname "sandbox.hortonworks.com" --privileged -d \
-p 6080:6080 \
-p 9090:9090 \
-p 9000:9000 \
-p 8000:8000 \
-p 8020:8020 \
-p 42111:42111 \
-p 10500:10500 \
-p 16030:16030 \
-p 8042:8042 \
-p 8040:8040 \
-p 2100:2100 \
-p 4200:4200 \
-p 4040:4040 \
-p 8050:8050 \
-p 9996:9996 \
-p 9995:9995 \
-p 8080:8080 \
-p 8088:8088 \
-p 8886:8886 \
-p 8889:8889 \
-p 8443:8443 \
-p 8744:8744 \
-p 8888:8888 \
-p 8188:8188 \
-p 8983:8983 \
-p 1000:1000 \
-p 1100:1100 \
-p 11000:11000 \
-p 10001:10001 \
-p 15000:15000 \
-p 10000:10000 \
-p 8993:8993 \
-p 1988:1988 \
-p 5007:5007 \
-p 50070:50070 \
-p 19888:19888 \
-p 16010:16010 \
-p 50111:50111 \
-p 50075:50075 \
-p 50095:50095 \
-p 18080:18080 \
-p 60000:60000 \
-p 8090:8090 \
-p 8091:8091 \
-p 8005:8005 \
-p 8086:8086 \
-p 8082:8082 \
-p 60080:60080 \
-p 8765:8765 \
-p 5011:5011 \
-p 6001:6001 \
-p 6003:6003 \
-p 6008:6008 \
-p 1220:1220 \
-p 21000:21000 \
-p 6188:6188 \
-p 61888:61888 \
-p 2222:22 \
sandbox /usr/sbin/sshd -D
fi
#docker exec -t sandbox /etc/init.d/startup_script start
docker exec -t sandbox make --makefile /usr/lib/hue/tools/start_scripts/start_deps.mf  -B Startup -j -i
docker exec -t sandbox nohup su - hue -c '/bin/bash /usr/lib/tutorials/tutorials_app/run/run.sh' &>/dev/nul
docker exec -t sandbox touch /usr/hdp/current/oozie-server/oozie-server/work/Catalina/localhost/oozie/SESSIONS.ser
docker exec -t sandbox chown oozie:hadoop /usr/hdp/current/oozie-server/oozie-server/work/Catalina/localhost/oozie/SESSIONS.ser
docker exec -d sandbox /etc/init.d/tutorials start
docker exec -d sandbox /etc/init.d/splash
docker exec -d sandbox /etc/init.d/shellinaboxd start
=======================================================================
:wq

# chmod +x start_sandbox.sh

# bash start_sandbox.sh

5. HDP 시작



브라우저를 시작하고 http://서버 IP 주소:8888/로 이동하여 Launch Dashboard를 선택합니다.



Ambari 로그인 화면이 표시되면 다음 기본 Username/Password로 로그인합니다.

Username: maria_dev
Password: Maria_dev



로그인 후 대시보드가 ​​표시됩니다.



이것으로 HDP SANDBOX의 환경 구축은 종료됩니다.

6. Rancher Agent 설치



Rancher 매니저 호스트가 구축되었다고 가정하기 때문에 Rancher 매니저 호스트 구축은 "Hadoop + Yarn Docker on SoftLayer by Rancher"을 참조하십시오.

Rancher 버전은 v1.2.0이고 언어 환경은 일본어입니다.

a.Rancher 환경 만들기



Rancher 관리 화면에 로그인하고 상단 메뉴 '환경'에서 '환경 관리'를 선택합니다.



환경 추가를 선택합니다.



이름을 HDP(선택 이름)로 설정하고 [만들기] 버튼을 누릅니다.



상단 메뉴 인프라에서 호스트를 선택합니다. 그런 다음 '호스트 추가' 버튼을 누릅니다.



빨간색 프레임의 명령을 복사하여 서버에서 실행합니다.



명령 실행 후 컨테이너 풀이 완료된 후 닫기 버튼을 누릅니다.
# docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.1.0 http://RancherマネージャーホストのIPアドレス:8080/v1/scripts/7E0CA449959F4B634E4D:1480946400000:uLwKStkhQHBCuPz4j9eoqm0NDM

상단 메뉴 인프라에서 컨테이너를 선택하고 대상 컨테이너를 선택합니다.



다음과 같이 HDP SANDBOX 컨테이너의 자원 상태 등을 감시 및 관리할 수 있습니다.



이것으로 HDP SANDBOX on SoftLayer by Rancher가 완료됩니다.

이번은 SoftLayer에서 실시했습니다만, 이쪽의 내용으로 GCP, Azure, AWS, 그 외의 클라우드에서도 실시할 수 있다고 생각하므로, 시험해 봅시다!

마지막이지만, @maru1981 씨, 매우 참고가 되었습니다. 감사합니다.

참고 사이트
  • HDP SANDBOX on AWS EC2
  • Hadoop + Yarn Docker on SoftLayer by Rancher
  • 좋은 웹페이지 즐겨찾기