SlideShare a Scribd company logo
1 of 6
Download to read offline
ZooKeeperで分散処理
2014年11月24日
JavaEE勉強会 開発合宿 成果発表
Akihiro HARAI
行ったこと
● ZooKeeper(Server)を動作させる
● HaskellでWorkerを作成
○ 区間の中にある素数を列挙
○ 例)
■ Request: {"from": 100000, "to": 100099}
■ Response: [100003, 100019, 100043, 100049, 100057, 100069]
● 複数のWorkerを利用して高速に素数を見つけ
るClientを作成(Ruby)
● Serverで、利用できるWorkerを管理する
○ Workerは動的に増減する前提
システム構成
Server
(port: 2181)
Server
(port: 2182)
Server
(port: 2183)
Replication
Worker
(port: 3000)
Worker
(port: 3001)
Worker
(port: 3002)
・・・
Client
Ephemeral(はかない) Node 作成
例) create /prime/3002
セッションが切れると自動消滅使えるWorkerの問合せ
ls /prime
>> [3000,3001,3002]
Webサービス利用
例) http://localhost:3000 {"from":100000,"to":100099}
>> [100003, 100019, 100043, 100049, 100057, 100069]
ZooKeeper
デモ
Server
(port: 2181)
Server
(port: 2182)
Server
(port: 2183)
Worker
(port: 3002)
Worker
(port: 3001)
Worker
(port: 3000)
ZooKeeper
リアルタイムStatus
Client
デモの内容
● Workerを取り除く
● Workerを追加する
● Serverを1つ止める
● 止めたServerを復旧させる
● Serverを2つ止める
学んだこと
● 動作させるだけならZooKeeperは難しくない
● Haskellでwebサービスを作るのは難しい
○ 情報が多くない、古い
● HaskellでZooKeeperを扱うのは難しい
○ 情報が少ない
● RubyでWorkerを扱うClientを作るのは大変
○ 並行処理

More Related Content

What's hot

カンタン画像サムネイル作成「Smalllight」
カンタン画像サムネイル作成「Smalllight」カンタン画像サムネイル作成「Smalllight」
カンタン画像サムネイル作成「Smalllight」
livedoor
 
国内レンタルサーバとAWSで負荷テストしてみました。
国内レンタルサーバとAWSで負荷テストしてみました。国内レンタルサーバとAWSで負荷テストしてみました。
国内レンタルサーバとAWSで負荷テストしてみました。
株式会社雲屋ネットワーク
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
Tatsuhiko Kubo
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
Tatsuhiko Kubo
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
 
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーションAzure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Masashi Shinbara
 

What's hot (20)

はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
 
Measurement of Maximum new NAT-sessions per second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packetsMeasurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessions per second / How to send packets
 
カンタン画像サムネイル作成「Smalllight」
カンタン画像サムネイル作成「Smalllight」カンタン画像サムネイル作成「Smalllight」
カンタン画像サムネイル作成「Smalllight」
 
Objective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & HackObjective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & Hack
 
機械学習プロ生20151121
機械学習プロ生20151121機械学習プロ生20151121
機械学習プロ生20151121
 
国内レンタルサーバとAWSで負荷テストしてみました。
国内レンタルサーバとAWSで負荷テストしてみました。国内レンタルサーバとAWSで負荷テストしてみました。
国内レンタルサーバとAWSで負荷テストしてみました。
 
AWS Lambda を使ってみた話 at づや会Vol.3
AWS Lambda を使ってみた話 at  づや会Vol.3AWS Lambda を使ってみた話 at  づや会Vol.3
AWS Lambda を使ってみた話 at づや会Vol.3
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
 
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
 
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみたJavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニックOSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック
 
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーションAzure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
 
Enumはデキる子 ~ case .Success(let value): ~
 Enumはデキる子 ~ case .Success(let value): ~ Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~
 
わかってるフレームワーク Laravel
わかってるフレームワーク Laravelわかってるフレームワーク Laravel
わかってるフレームワーク Laravel
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシー
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 

Similar to Java EE勉強会 開発合宿 成果発表

Solr meeting in Japan 2011
Solr meeting in Japan 2011Solr meeting in Japan 2011
Solr meeting in Japan 2011
Takahiko Ito
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
akirahiguchi
 
Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / Erlang
Takeru INOUE
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
Ibm worklight デモ環境とサンプルコード
Ibm worklight デモ環境とサンプルコードIbm worklight デモ環境とサンプルコード
Ibm worklight デモ環境とサンプルコード
K Kimura
 

Similar to Java EE勉強会 開発合宿 成果発表 (20)

Solr meeting in Japan 2011
Solr meeting in Japan 2011Solr meeting in Japan 2011
Solr meeting in Japan 2011
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzure20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzure
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / Erlang
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Ibm worklight デモ環境とサンプルコード
Ibm worklight デモ環境とサンプルコードIbm worklight デモ環境とサンプルコード
Ibm worklight デモ環境とサンプルコード
 
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
 
MlnagoyaRx
MlnagoyaRxMlnagoyaRx
MlnagoyaRx
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)
 
リアルタイム処理エンジン Gearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジン Gearpumpの紹介
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
 
Tottoruby 20110903
Tottoruby 20110903Tottoruby 20110903
Tottoruby 20110903
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 

Java EE勉強会 開発合宿 成果発表