Cloudera ManagerとCDHをAWS EC2にインストールしてみた

2013.11.07

こちらのエントリ、きっかけは下記イベントでの内容でした。

弊社で行われたTableau(※BIツール) x AWSな組み合わせのこのイベントにて、Tableau Japanの並木 正之さんの解説の元、TableauからCloudera Impalaという仕組み(リアルタイムクエリ)を介してデータに接続するデモが行われ、その反応の早さに参加者一同驚きました。

それを受けて、『AWS上でこれが動かせるのであれば、またひとつ面白い事が出来るんじゃないか』と思った部分もありキーワードで検索を掛けてみたところ、以下の情報を発見。んじゃぁまずはインストールしてみましょう!って事で投稿準備を始めた次第です。

では早速スタート!

事前準備

環境構築の点では、アクセス制御の為に以下情報を持つセキュリティグループが必要となります。配備予定のVPCに紐付く形で前以て作成。

  • TCP:7180, 7182, 7183, 7432
  • ICMPを許可(Echo Reply)

install_cloudera01

また、EC2作成時のキーペアが必要となりますので無ければ前以て作っておきましょう。

EC2インスタンスの起動

EC2に関しては、Ubuntu12.04若しくはCloudera ManagerがサポートしているOSを導入する必要があります。サポートしているものについては以下リンクを参照。

このエントリでは、指定のあるUbuntu12.04を使ってみる事にします。対応するAMIを選択。

install_cloudera02

先のドキュメントには、動作させるためには『m1.large以上が必要』との記述もありました。(Select the Instance Type: Cloudera recommends using at least "M1 Large" instances.)というわけで今回はm1.largeを選択。

install_cloudera03

VPC及びサブネットは所定の配備予定となる場所を指定。

install_cloudera04

EC2に割り当てるグループは先程作成したものに加えて、SSH(22)を許可する設定も併せて追加。

install_cloudera06

内容確認。その他の要素についてはひとまずそのままの設定値で進めました。

install_cloudera07

KeyPairの指定を行い、起動。

install_cloudera08

Cloudera ManagerをEC2にインストール

EC2の起動完了後、SSHでログインします。Ubuntuの場合はユーザー名『ubuntu』でログイン。

$ ssh -i XXXXXXXXXXXXXXX-key.pem ubuntu@xx.xxx.xxx.xxx

Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-54-virtual x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Wed Nov  6 15:25:40 UTC 2013

  System load:  0.0               Processes:           65
  Usage of /:   11.1% of 7.87GB   Users logged in:     0
  Memory usage: 0%                IP address for eth0: xxx.xx.x.xx
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

  Use Juju to deploy your cloud instances and workloads:
    https://juju.ubuntu.com/#cloud-precise

0 packages can be updated.
0 updates are security updates.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@ip-xxx-xx-x-xx:~$ 

wgetコマンドでインストーラをダウンロード&起動。

$ wget http://archive.cloudera.com/cm4/installer/latest/cloudera-manager-installer.bin
$ sudo su
root@ip-xxx-xx-x-xx:/home/ubuntu# chmod +x cloudera-manager-installer.bin
root@ip-xxx-xx-x-xx:/home/ubuntu# ./cloudera-manager-installer.bin

ここからしばらくGUIモードに。基本OK、次へと進めて行きます。

install_cloudera09

install_cloudera11

インストール完了後は、ブラウザ上で作業が進んで行きます。

Cloudera Manager Cloud Express上での作業 - CDHのインストール

インストール完了後、ブラウザを開き http://(EC2サーバのホスト名):7180/ にアクセス。ログイン画面が表示されるので、admin/adminでログインします。

install_cloudera12

エンタープライズ版のライセンスを持っている場合はアップロードが行えますが、今回は持っていないのでトライアル版のまま次へ。

install_cloudera14

進んで行くと、サーバの再起動を求められます。表示されているテキスト通りにサーバ再起動を実施。

install_cloudera15

$ ssh -i xxxxxxxxxxxxxxx-key.pem ubuntu@xx.xxx.xxx.xxx
$ sudo su
# service cloudera-scm-server restart

再起動後ログインし直すと先に進めるようになります。[続行]押下。

install_cloudera16

インスタンス仕様の入力。先程の入力内容に倣い、ここはOS:Ubuntu12.04、インスタンスタイプ:m1.largeを選択。クラスタへ追加するインスタンス数も最小の1を設定し[続行]押下。

install_cloudera17

資格情報の入力。ここではアクセスキーIDとシークレットキーを入力するのですが、当初『EC2起動の際に利用していたアカウント(に紐付く情報)で行けるのかなと思いきや、それでは宜しくない様でした。

install_cloudera18

上記画面指示内容にあるように、別途管理コンソールでIAMを開き、新しくアクセスキーを生成します。生成した情報は保存・退避しておきましょう。

install_cloudera19

install_cloudera20

ここはそのまま、プロビジョニングを開始。

install_cloudera21

install_cloudera22

プロビジョニングが完了したらキーをダウンロードしておきましょう。次へ。

install_cloudera23

インストールが始まります。

install_cloudera24

インストール完了。

install_cloudera25

導入内容の検査が始まります。しばらく放置。

install_cloudera26

クラスタサービスも諸々起動し始めます。

install_cloudera28

インストール完了!

install_cloudera29

改めてログインし直して見ます。諸々サービスが立ち上がってますね!

install_cloudera30

まとめ

ひとまず、ゼロからEC2に環境を立ち上げる所までは出来ました。画面ウィザードに従って作業を進めた部分も多く、そこまで苦労したという訳でも無かったです。進行が日本語で進むのも地味にありがたいところですね。

この時点ではまだ何も動かせてないので、本来の目的の1つであるImpalaの実行、そしてTableau(Desktop)からの接続検証等も進めて行ければと思います。