Hadoop初心者のアメリカ在住Java女子です。
Clouderaが提供しているCloudera Quickstartのdocker imageを使ってCloudera Managerを立ち上げてみました。
###動作環境
- Mac OS
- Dockerインストール済み
###手順
Cloudera Quickstart imageをインストール
まずはターミナルから
$ docker pull cloudera/quickstart:latest
(結構長く待たされた・・・)
Dockerイメージを立ち上げ
ネットでよく見る手順書にはこのコマンドが載ってるけれども、
$ docker run --hostname=quickstart.cloudera \
--privileged=true -t -i cloudera/quickstart:latest \
/usr/bin/docker-quickstart`
これだとDocker内で立ち上がったサービスにホストOS(Mac OS)からアクセスできない。要するにブラウザからGUI操作ができない。なのでポートの設定を加えました。7180と80の2つ。
7180はCloudera managerのデフォルトポート、80はQuick start tutorial。
$ docker run --hostname=quickstart.cloudera \
--privileged=true -t -i -d -p 7180 -p 80 \
cloudera/quickstart:latest /usr/bin/docker-quickstart
Port-mapping 確認
docker psでport mappingを確認してみると、
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f99fd392c809 cloudera/quickstart:latest "/usr/bin/docker-quic" 33 minutes ago Up 33 minutes 0.0.0.0:32800->80/tcp, 0.0.0.0:32799->7180/tcp amazing_engelbart
7180は32799, 80は32800にマッピングされてる。
Dockerが自動でホストOSの空いているポートを割り当ててくれてる。
で、上記のdocker runコマンドを実行するとコンテナが立ち上がり、自動でサービスを開始してくれる。
クイックスタートガイドにアクセスしてみる
起動プロセスが一通り終わったら、まずはクイックスタートガイドにアクセスしてみる。
Docker HostのIPアドレスを調べると、
$ docker-machine ip default
192.168.99.100
うむ、192.168.99.100だ。さっきのdocker psによると、ポート80は32800にマッピングされてた。
なのでMacのブラウザから192.168.99.100:32800にアクセスしてみる。
Yay!
Cloudera Managerを起動
チュートリアルをすっ飛ばして、Cloudera Managerを立ち上げる。
[root@quickstart cloudera]# sudo /home/cloudera/cloudera-manager --force --express
[QuickStart] Shutting down CDH services via init scripts...
[QuickStart] Disabling CDH services on boot...
[QuickStart] Starting Cloudera Manager daemons...
[QuickStart] Waiting for Cloudera Manager API... <<< ここでかなり待たされる
[QuickStart] Configuring deployment...
[QuickStart] Deploying client configuration...
[QuickStart] Starting Cloudera Management Service...
[QuickStart] Enabling Cloudera Manager daemons on boot...
Success! You can now log into Cloudera Manager from the QuickStart VM's browser:
http://quickstart.cloudera:7180
Username: cloudera
Password: cloudera
親切に、usernameとpassword表示して起動が終わった。
「ブラウザからhttp://quickstart.cloudera:7180 にアクセスしてみな!」って書いてあるけど、Docker内で動いているのでこのURLは使えない。
さっきのdocker psによるとポート7180はMac OSのポート32799にマッピングされてるので、ブラウザから192.168.99.100:32799にアクセス。
UsernameとPasswordは"cloudera"でログイン出来る。
(なんとなくクセでadminって入力しちゃってるけど・・汗)
入力後のCloudera Managerの画面。
###ハマった点
ドキュメントに「Quickstart tutorialを起動しない場合は、docker runコマンドに /bin/bash を渡せばいいよ」と書いてあったので、下記のコマンドを実行。
$ docker run --hostname=quickstart.cloudera --privileged=true \
-t -i -d -p 7180 -p 80 cloudera/quickstart:latest /bin/bash
無事にdockerは起動できたものの、HDFSにエラーが出てるし、Cloudera Managerも全くアクセスできない泣
Quickstart tutorialは全てのサービスを自動で起動してくれてるので、それをすっとばすとHDFS, Hive, Sparkなど手動で起動しないといけない模様T−T