6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Hortonworks Advent Calendar 2016

Day 6

HDP SANDBOX on SoftLayer by Rancher

Last updated at Posted at 2016-12-05

@maru1981さんのHDP SANDBOX on AWS EC2を参考に、SoftLayer上でHDP SANDBOXのDockerコンテナを稼働させて、Rancherで管理するまでを試してみた記録です。

1.SoftLayerでサーバの準備

SoftLayer上に仮想サーバ(1台)を以下の構成で作成します。

項目 設定内容 備考
Data Center SJC01 - San Jose Hortonworks本社の近くということで!
Computing Instance 4 x 2.0 GHz Cores -
RAM 16GB 8GB以上必要です。
ディスク 100GB 1台でOKです。
Operating System CentOS7.x - Minimal Install(64 bit) HDP SANDBOXは確かRHEL系だったのでCentOSにしました。

2.Dockerのインストール

最新のDocker-engineをインストールします。
作業は、rootユーザで行いました。

# 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) <docker@docker.com>"
 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- https://get.docker.com/ | 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を選択します。

launch_dashboard.png

Ambariのログイン画面が表示されたら、以下のデフォルトのUsername/Passwordでログインします。

Username:maria_dev
Password:maria_dev

ambari.png

ログイン後にダッシュボードが表示されます。

ambari2.png

以上でHDP SANDBOXの環境構築は終了となります。

6.Rancher Agentのインストール

Rancherのマネージャホストの構築されたことを前提しますので、Rancherマネージャホストの構築は「Hadoop + Yarn Docker on SoftLayer by Rancher」を参照してください。

Rancherのバージョンはv1.2.0、言語環境は日本語としています。

a.Rancherの環境を作成

Rancherの管理画面にログインして、上部メニュー「環境」から「環境を管理」を選択します。

rancher1.png

「環境を追加」を選択します。

rancher2.png

名前をHDP(任意名)にして、「作成」ボタンを押下します。

rancher3.png

上部メニュー「インフラストラクチャ」から「ホスト」を選択します。そして、「ホストを追加」ボタンを押下します。

rancher4.png

赤枠のコマンドをコピーして、サーバで実行します。

rancher5.png

コマンド実行後、コンテナのPullが完了した後に「閉じる」ボタンを押下します。

# 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

上部メニュー「インフラストラクチャ」から「コンテナ」を選択して、対象のコンテナを選択します。

rancher6.png

以下のようにHDP SANDBOXコンテナのリソースの状態等を監視及び管理できます。

screencapture-169-54-135-242-8080-env-1a2876-infra-containers-1i4155-ports-1480950589008.png


以上でHDP SANDBOX on SoftLayer by Rancherは完了となります。

今回はSoftLayerで実施しましたが、こちらの内容でGCP、Azure、AWS、その他のクラウドでも実施できると思いますので、試してみましょう!

最後になりますが、@maru1981さん、非常に参考になりました。感謝いたします。

参考サイト

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?