Cloud上のHadoopの払い出しからSparkのjob実行まで


BluemixのBigInsights for Apache HadoopがOpenBetaになったので、Cloud上でサクッと（タダで）Hadoop使ってみます。
Sparkも入れられるので、Sparkの実行とか使い方的な紹介

##Bluemixのカタログから払い出し

* Bluemixのカタログから **BigInsights for Apache Hadoop**を探して選択
![img1.png](https://qiita-image-store.s3.amazonaws.com/0/31585/0708dafd-3fc2-2342-46b5-a9ecbbf5f1b5.png "img1.png")


* **サービス名**, **価格プラン**を選んで作成
	* プランはBasic(Beta)を選択。今は <span style="color:red">**無料**</span>なので。（重要）
![img2.png](https://qiita-image-store.s3.amazonaws.com/0/31585/540f34db-4dba-bcec-41e2-b5c4d688409c.png "img2.png")


* **Open**を選択
![img3.png](https://qiita-image-store.s3.amazonaws.com/0/31585/7af8bba9-22d9-3b05-512e-747c8ba2a9ae.png "img3.png")

>払い出した直後に下記のエラーページとか飛ばされる事がある。ちょっと待ってから再度Open選べばちゃんとcluster管理に飛べる・・・・ほら、betaだし・・・
![img4.png](https://qiita-image-store.s3.amazonaws.com/0/31585/4fc82e02-b2ec-c037-0330-7fbf349019dd.png "img4.png")


##プロビジョニング
cluster管理画面まで辿りつけたら最初にclusterを作成していきます。

* Cluster Listから **New Cluster**を選択
![img5.png](https://qiita-image-store.s3.amazonaws.com/0/31585/00f93346-bba1-c0ae-5c89-c44b1eded0ca.png "img5.png")


* **Cluster Name**, **User Name**, **Password**, **Configuration**を設定

>ここのUser NameとPasswordは後のAmbariのログインとSSHで使うので忘れないように・・・

![img6.png](https://qiita-image-store.s3.amazonaws.com/0/31585/7b1efabc-5dc2-9f41-f503-cd2c525e140f.png "img6.png")


###configurationについて
* 仮想の数はDataNode数かGB単位で指定。Beta中は5node/1220GB上限の模様
* IBM Open Platform VersionはIOP 4.2以外選べないのでそれで。
* Data StoreはBluemixのObject StorageかSoftLayerが選べれるみたい。


>やってないからわかんないけど、ObjectStorageをS3見たくアーカイブ用途で使用できるんかしら？


* HDFS,YARN,MR2,HBase,ZK,Knox,Ambari,Hiveが必須で入る
* オプションで、Spark,Pig,Sqoop,Oozie,Fluem,RSERVが選択可能
* 今回はSpark,Sqoop,Oozie,Flumeあたり入れとく

configuration終わったら作成

* **CREATE**押したあと数分でHadoopのCluster出来上がる
![img7.png](https://qiita-image-store.s3.amazonaws.com/0/31585/889f5125-619a-af93-317c-978c5a6fdc5c.png "img7.png")


##Status画面
プロビジョニング終わると下記のようなClusterのStatusが見れる

* 重要なのはSSH HostとService Detailsくらい
	* SSH先のドメイン
	* Hive接続用のURL
	* WebHDFS用のURL
	* AmbariのURL

![img8.png](https://qiita-image-store.s3.amazonaws.com/0/31585/1e147ab7-f615-f58a-258d-b5fc735c38c9.png "img8.png")


>ちなみにBluemix上で現在選べるDataCenterはUS South,Sydney,United Kingdomの３つからなのに、BigInsights for Apache Hadoop <span style="color:red">**だけ**</span>なぜかWashingtonDCに払い出されてるとか、BigInsights（製品）は <span style="color:red">**CentOSサポートしてない**</span>けど、これはなぜかCentOSで作成されるとか、そんな細かい事気にしてはいけません・・・betaだし・・・

##Ambari
おなじみのAmbari画面
プロビジョニング時のUser Name, Passowrdでログイン可能
![img9.png](https://qiita-image-store.s3.amazonaws.com/0/31585/c0ef832f-12c0-be5c-b76d-b332ed60f50b.png "img9.png")

* ステータス管理
* configuration管理（閲覧のみ）
* メトリクス
などがこちらから可能

![img10.png](https://qiita-image-store.s3.amazonaws.com/0/31585/ab7975cc-2974-a648-a8a5-34e865d380b8.png "img10.png")


>素のAmbariのようにClusterへのNodeの追加や、ServiceのStart,Stopなどはできないみたい。HBase使わない人とかも上がりっぱなしになるのでこの辺りは注意
当然、configの変更はできないのでほぼメトリクスとステータス管理用・・・・ ~~Ambari入る意味ってなんだろう・・・~~

##SSH
下図のようにコンソールから、プロビジョニング時のUser Name, Passwordでログイン可能

```bash
ssh <User Name>@<SSH Host>
```
![img11.png](https://qiita-image-store.s3.amazonaws.com/0/31585/6167392a-7843-5303-551e-0170b28957c0.png "img11.png")

ログイン後、spark-shell叩く事でsparkの実行が可能

![img12.png](https://qiita-image-store.s3.amazonaws.com/0/31585/a5e118eb-03ce-d556-ee4a-bf4bcbb58911.png "img12.png")



普段よく使う奴らは下図のように

```bash
/usr/iop/current/
```
この辺りにいる

![img13.png](https://qiita-image-store.s3.amazonaws.com/0/31585/f1691cb5-d50c-903e-3184-6459f08b002f.png "img13.png")


>ログインユーザーにsudoはほとんど付いてないみたい。yumが叩けなかったのでvim入れられず。開発環境とかには絶対向かない・・・・

##SparkPiの実行
spark-examples.jarは置いてくれてるようなので、spark-submitしてみる

```bash
spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client /usr/iop/current/spark-client/lib/spark-examples.jar
```

実行後、下図の結果が出る。

![img14.png](https://qiita-image-store.s3.amazonaws.com/0/31585/b703d028-8b3a-536b-99b4-4dca19893f33.png "img14.png")


HistoryUIを見るとSparkPiが実行されているのがわかる
![img15.png](https://qiita-image-store.s3.amazonaws.com/0/31585/14b8cbfc-cdc6-47e4-9995-44686651c4ad.png "img15.png")


>開発後、jarを作ってsshで持って行って実行するのはできそう。
HistoryUIを開く際にBasic認証を求められる場合はプロビジョニング時のUser Name, Passwordで入る事が可能です。

##WebHDFS
WebHDFSはRESTになってるので、例えばファイルを一覧でみたい場合はブラウザとかcurlとかで
* [https://<webhdfsUrl>/gateway/default/webhdfs/v1/?op=liststatus](https://<webhdfsUrl>/gateway/default/webhdfs/v1/?op=liststatus)な感じで見る事が可能
![img16.png](https://qiita-image-store.s3.amazonaws.com/0/31585/239ade4e-8859-a89a-f26a-4a9a22d3b26f.png "img16.png")


とりあえず今日はここまで。