Gearpumpのローカル環境の起動方法＆デプロイ方法

こんにちは。

前回までで内部の概要は見えてきたため、今回は実際にローカルモードでGearpumpを動作させてみます。

## ダウンロード＆インストール

ローカルモードの場合、[下記のページ](http://www.gearpump.io/download.html)からファイルをダウンロードし、展開すればそれで完了です。

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/cced34dc-aa15-3802-7b2e-3c33bb7471b1.jpeg)

## ローカルモード＆UI起動

展開後、ディレクトリ「gearpump-2.11-0.7.5」が作成されますので、下記のバッチファイル（Mac or Linuxの場合はコマンド）を実行することでローカルモードのサービスと、UIが起動します。

- ローカルモードサービス
  - bin/local.bat
- UI
  - bin/services.bat

起動して「[http://localhost:8090]」にアクセスすると下記のようにMaster、Workerの概要が表示されます。

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/b85cd747-c760-fcdd-a19f-0c44710a74a5.jpeg)

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/1445f9de-fea7-2045-e1fd-7b5acebeccef.jpeg)

## アプリケーションデプロイ

では、次はアプリケーションのデプロイです。

ディレクトリ「gearpump-2.11-0.7.5」配下で下記のコマンドを実行します。
*サイトのページはコマンドが古いのか、掲載されているコマンドでは動作しませんでした。*

```bat
bin/gear app -jar examples/wordcount-2.11-0.7.5-assembly.jar
```

すると下記のようにコマンドが実行＆ログが表示され、アプリケーションがデプロイされます。

```bat
"C:\Program Files\Java\jdk1.8.0_40\bin\java.exe" "-Djava.net.preferIPv4Stack=true" "-Dgearpump.home=C:\Download\gearpump-2.11-0.7.5\bin\.."  -cp "C:\Download\gearpump-2.11-0.7.5\bin\..\conf;C:\Download\gearpump-2.11-0.7.5\bin\..\lib\daemon\*;C:\Download\gearpump-2.11-0.7.5\bin\..\lib\yarn\*;.;C:\Download\gearpump-2.11-0.7.5\bin\..\lib\*;" -Dprog.home="C:\Download\gearpump-2.11-0.7.5\bin\.." -Dprog.version="0.7.5" io.gearpump.cluster.main.Gear app -jar examples/wordcount-2.11-0.7.5-assembly.jar

[INFO] [01/27/2016 07:23:50.661] [ClusterConfig$] loading config file application.conf...
[INFO] [01/27/2016 07:23:50.849] [ClusterConfig$] loading config file application.conf...
[INFO] [01/27/2016 07:23:52.029] [Slf4jLogger] Slf4jLogger started[INFO] [01/27/2016 07:23:52.281] [Remoting] Starting remoting
[INFO] [01/27/2016 07:23:52.754] [Remoting] Remoting started; listening on addresses :[akka.tcp://client75417524@127.0.0.1:53258]
[INFO] [01/27/2016 07:23:52.813] [Metrics$] Metrics is enabled...,  true
[INFO] [01/27/2016 07:23:52.817] [ClientContext] Starting system client75417524
[INFO] [01/27/2016 07:23:52.862] [MasterProxy@masterproxy789807113] Contacts point URL: akka.tcp://master@127.0.0.1:3000/user/master
[INFO] [01/27/2016 07:23:52.868] [MasterProxy@masterproxy789807113] sending identity to ActorSelection[Anchor(akka.tcp://master@127.0.0.1:3000/), Path(/user/master)]
[INFO] [01/27/2016 07:23:52.870] [MasterProxy@masterproxy789807113] Master Proxy is started...
[INFO] [01/27/2016 07:23:53.380] [ClientContext] Creating master proxy Actor[akka://client75417524/user/masterproxyclient75417524#881240967] for master list: List(HostPort(127.0.0.1,3000))
[INFO] [01/27/2016 07:23:53.383] [MasterProxy@masterproxyclient75417524] Contacts point URL: akka.tcp://master@127.0.0.1:3000/user/master
[INFO] [01/27/2016 07:23:53.390] [MasterProxy@masterproxyclient75417524] MasterProxy is started...
[INFO] [01/27/2016 07:23:53.390] [MasterProxy@masterproxyclient75417524] sending identity to ActorSelection[Anchor(akka.tcp://master@127.0.0.1:3000/), Path(/user/master)]
[INFO] [01/27/2016 07:23:53.411] [MasterProxy@masterproxy789807113] Stashing GetJarStoreServer$
[INFO] [01/27/2016 07:23:53.431] [MasterProxy@masterproxy789807113] Connected to [akka.tcp://master@127.0.0.1:3000/user/master]
[INFO] [01/27/2016 07:23:53.549] [MasterProxy@masterproxyclient75417524] Connected to [akka.tcp://master@127.0.0.1:3000/user/master]
Submit application succeed. The application id is 1
[INFO] [01/27/2016 07:24:01.431] [ClientContext] Shutting down system client75417524
[INFO] [01/27/2016 07:24:01.563] [RemoteActorRefProvider$RemotingTerminator] Shutting down remote daemon.
```

すると、UIから下記のようにApplicationが表示され、詳細を見ることが出来るようになります。

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/f42ed0e9-d12f-3702-fd31-2ac3cb99c733.jpeg)

詳細を表示すると下記です。

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/b2a89cb3-53e6-a49d-bc43-faa2316bb518.jpeg)

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/b4e7ca25-6c0e-f691-7022-3ab439aa4971.jpeg)

![キャプチャ.JPG](https://qiita-image-store.s3.amazonaws.com/0/9616/0cf57fb8-ceec-b189-02a3-05f118086b27.jpeg)

Split、Sumという2つのProcessorから構成されたシンプルなApplicationが起動したのがわかります。
また、Executorsの所からわかる通り、このApplicationは下記の3つのExecutorプロセスで動作しているようです。

- AppMaster 	
- Executor 0	
- Executor 1

## まとめ

ローカルモードでは非常に簡単な手順でGearpumpが動作可能であることがわかりました。
次は、実際にデプロイしたApplicationのソースを見て、GearpumpのApplicationをどのように作ればいいかを見て行きます。