White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

Ambari + EC2 spot instanceでHadoopクラスタを30分で作る

軽い事前準備はいりますが、Ambariを使うと複数台のHadoopクラスタを30分くらいで一気に作ることができます。

タイトルではEC2 spot instanceとか書いてますが、単にマシン大量に用意しているだけなんで別にAzureとかGCEでも他のIaaSでもいけるかもしれません。またここではHDP使ってますが同じくAmbari使ってるPivotalHDもいけるはずです。

 

ドキュメント

http://docs.hortonworks.com/HDPDocuments/Ambari-2.1.0.0/bk_Installing_HDP_AMB/content/ch_Getting_Ready.html

 

細かい設定は後ほど書きますが、Ambari-server入れたマシンとSELinuxとか切ったイメージは用意しておく必要はあります。あとセキュリティの設定もしておく必要があります。

 

んで、インスタンスをspotで大量作成。こんなことしなくてもm3.xlargeとかを少量建てたほうが効率いいでしょうけど。

f:id:showyou:20150830232233p:plain

f:id:showyou:20150830232037p:plain

建ちました。

Ambari-serverマシン立ちあげて、ログインします。

f:id:showyou:20150830232255p:plain

インストールするHDPのバージョンを選びます。URLの空欄は、HDPのRPMを入れた内部IPを入れています。s3をrpmリポジトリにするのもいいかもしれません。

f:id:showyou:20150830232409p:plain

インストール先を入力します。例によって各マシンの内部IPです。今回30個Spot建てたので30個分IP貼っつけてます。

f:id:showyou:20150830232553p:plain

インストールするコンポーネントを選びます。この前にHBaseとか、OozieとかSparkを選択する画面があります。

f:id:showyou:20150830232731p:plain

Hiveは管理用のパスワードが必要なので、入れています。

f:id:showyou:20150830232911p:plain

インストールを進めます。あとは勝手にNamenodeやDatanodeをインストールしていきます。

f:id:showyou:20150830233005p:plain

f:id:showyou:20150830233140p:plain

インストールが終わりました。実際インストール自体は30分くらいなのですが、今回はSpotの価格が安くていくつかインスタンスが落とされたため、価格を再設定して立てなおしたりしましたのでもっと時間がかかっています。

f:id:showyou:20150830233208p:plain

セットアップが終わったら結果が表示されます。今回はセットアップ自体は22分で出来ています。

f:id:showyou:20150830233415p:plain

30台のクラスターが並んでいます。

f:id:showyou:20150830233528p:plain

Map=20でPIのサンプルを回したときの結果です。

f:id:showyou:20150830233623p:plain

 

使い終わったら、各インスタンスをterminateします。ディスク自体はEBSで残しておくこともできますが、再度インスタンス作るときに内部IPが変わるのでその辺別途設定がいるかと思います。Blueprintとか使って作りなおした方が速いかもしれませんが、まだBlueprintを把握してないのでそれはこの次。あとAmbari-serverは

$ ambari-server stop

$ ambari-server reset

すると再度初期セットアップに戻ります。

 

というわけで、Ambariを使って素早くHadoopクラスタを作る方法について書きました。ただ大規模計算をしたいならEMRを使った方がいいかもしれませんが、一度Hadoopクラスタ複数台でいじってみたいって人にはいいかもしれません。

後日やる気が出たら詳しい設定方法について書いていきます。