こんにちは。
前回までで内部の概要は見えてきたため、今回は実際にローカルモードでGearpumpを動作させてみます。
ダウンロード&インストール
ローカルモードの場合、下記のページからファイルをダウンロードし、展開すればそれで完了です。
ローカルモード&UI起動
展開後、ディレクトリ「gearpump-2.11-0.7.5」が作成されますので、下記のバッチファイル(Mac or Linuxの場合はコマンド)を実行することでローカルモードのサービスと、UIが起動します。
- ローカルモードサービス
- bin/local.bat
- UI
- bin/services.bat
起動して「[http://localhost:8090]」にアクセスすると下記のようにMaster、Workerの概要が表示されます。
アプリケーションデプロイ
では、次はアプリケーションのデプロイです。
ディレクトリ「gearpump-2.11-0.7.5」配下で下記のコマンドを実行します。
サイトのページはコマンドが古いのか、掲載されているコマンドでは動作しませんでした。
bin/gear app -jar examples/wordcount-2.11-0.7.5-assembly.jar
すると下記のようにコマンドが実行&ログが表示され、アプリケーションがデプロイされます。
"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が表示され、詳細を見ることが出来るようになります。
詳細を表示すると下記です。
Split、Sumという2つのProcessorから構成されたシンプルなApplicationが起動したのがわかります。
また、Executorsの所からわかる通り、このApplicationは下記の3つのExecutorプロセスで動作しているようです。
- AppMaster
- Executor 0
- Executor 1
まとめ
ローカルモードでは非常に簡単な手順でGearpumpが動作可能であることがわかりました。
次は、実際にデプロイしたApplicationのソースを見て、GearpumpのApplicationをどのように作ればいいかを見て行きます。