AWS
AmazonLinux
docker
Cloudera
CDH

Cloudera QuickStart VMs (Docker)をAWS上で動かす

はじめに

Cloudera QuickStart VMs を触ってみます。

前提条件

環境:t2.xlargeのEC2インスタンス(EIP設定済み)
OS:Amazon Linux

$ uname -a
Linux ip-hoge-hoge-hoge-hoge 4.9.58-18.51.amzn1.x86_64 #1 SMP Tue Oct 24 22:44:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

インスタンス初期設定

まずは以下のように初期設定を行っておきます。

# yum update
$ sudo yum update

# タイムゾーン設定(UTC -> JST)
$ sudo mv /etc/localtime /etc/localtime.org
$ sudo ln -s  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

Docker インストール

Dockerをインストールします。

# dockerインストール&サービス起動
$ sudo yum install -y docker
$ sudo service docker start

# dockerグループにec2-userを追加
$ sudo usermod -a -G docker ec2-user
$ cat /etc/group |grep docker
docker:x:497:ec2-user

ログアウト & 再度ログイン

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.03.2-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.51-10.52.amzn1.x86_64
Operating System: Amazon Linux AMI 2017.09
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.67 GiB
Name: ip-hoge-hoge-hoge-hoge
ID: 4AKT:BX72:LWYE:7KFY:ZWX2:TW2I:374J:C7XP:D6QZ:QYHO:RSAC:TKEB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Cloudera Quick Start Docker Image取り込み

以下のドキュメントを参考にDocker Imageを取り込みます。
https://www.cloudera.com/documentation/enterprise/5-6-x/topics/quickstart_docker_container.html

イメージはあらかじめcloudera.comからダウンロードしたものをEC2インスタンスへアップロードしておきます。
※「Downloads > QuickStart VMs > Docker Image」からダウンロード

# Cloudera Quick Start Dockerイメージ展開
$ tar xzf cloudera-quickstart-vm-*-docker.tar.gz

# Dockerイメージ取り込み
$ docker import - cloudera/quickstart:latest < cloudera-quickstart-vm-*-docker/*.tar

Cloudera Quick Start 起動

Cloudera Quick Startを起動します。

# 起動
$ docker run --hostname=quickstart.cloudera --privileged=true -t -i -d -p 7180:7180 -p 80:80 -p 8888:8888 -p 3306:3306 -p 10000:10000 cloudera/quickstart:latest /usr/bin/docker-quickstart

# コンテナ情報を調べる
$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                                                  NAMES
4ad6c4325d1c        cloudera/quickstart:latest   "/usr/bin/docker-q..."   8 seconds ago       Up 8 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp, 0.0.0.0:7180->7180/tcp, 0.0.0.0:8888->8888/tcp, 0.0.0.0:10000->10000/tcp   agitated_albattani

コンテナ情報から、コンテナ側のポートがホスト側のポートにマップされたことが分かります。

ポート 利用対象
80 QuickStart VM ガイドページ
3306 MySQL
7180 Cloudera Manager
8888 Hue
10000 Hive

以下でQuickStart VMのガイドページが表示されます。
http://[EC2インスタンスのEIP]
image

Cloudera Manager 起動

Cloudera Managerはデフォルトでは起動しないそうなので、下記の通り起動させます。
注意点として、ntpサービスが動いていないとステータス画面でエラーが出るので、事前に起動させておきます。

# コンソールにログイン
$ docker attach fb4d3b01b00b

# nptサービスが動いていないので、事前に動かす
$ service ntpd start

# Cloudera Managerを起動 (起動には時間が掛かります)
$ /home/cloudera/cloudera-manager --enterprise
[QuickStart] Shutting down CDH services via init scripts...
()
Success! You can now log into Cloudera Manager from the QuickStart VM's browser:

    http://quickstart.cloudera:7180

    Username: cloudera
    Password: cloudera

# コンソールから抜けるときはCtrl+P⇒Ctrl+Q

無事に起動したら、先ほどdocker psでみた情報を元にマッピングされたポートにアクセスします。
http://[EC2インスタンスのEIP]:7180

情報保証ポリシーに同意します。
Cloudera Manager Agreement

先程のUsername/Passwordであるcloudera/clouderaでログイン
Cloudera Manager Login

ホーム画面が表示されました。
Cloudera Manager Home

ステータスにある通り、Hueも起動しているのでログインしてみます。
http://[EC2インスタンスのEIP]:8888
image

あとはHueからテーブルを作成したり、データを投入したりして試してみることができます。

参考

DockerでCloudera Managerを立ち上げる

CDH5版Hiveのインストール手順

AWSのEC2でDockerを試してみる