SlideShare a Scribd company logo
1 of 33
Download to read offline
Spark in small or middle
scale data processing with
Elasticsearch
2015-06-01 第10回elasticsearch勉強会
自己紹介
島本 多可子(@chibochibo03)
株式会社ビズリーチ
元々はJavaを書いてましたが、ここ数年はScalaを
書いてます
一応、GitBucketのコミッタです
https://github.com/takezoe/gitbucket
執筆もやってます
検索エンジン作ってます
リリースまでの開発期間
● おおよそ1年
○ この間に何度もアーキテクチャを変更
○ 全部捨てて1から作り直すことも
● Elasticsearchではない時期もあった
Elasticsearch vs CloudSearch
● サービスのほとんどはAWS上に構築
● 自然とCloudSearchという選択肢に
● 実際CloudSearchで動いていたこともあった
○ aws-cloudsearch-scalaというライブラリも作った
Elasticsearchに決めた理由
● 当時は機能不足が否めなかった
○ 当時はユーザ辞書が使えなかった、n-gramが使えな
かったなど欲しい機能が不足していた
● 検索の細かいチューニングが肝になる
○ 将来的にもプラグイン含め自分達で手を入れられるもの
を選択する必要があった
検索部分のアーキテクチャ
Front API
JSON over HTTP
Search API
Elasticsearch
elastic-scala-httpclient
フロントから検索部分を完
全分離
APIにすることで影響範囲
の限定および集約
クエリはテンプレート化
ねらい
● フロントサイドと検索サイドでライフサイクルが
異なるでの別々にデプロイできるように
● クエリリライトや検索クオリティへの要件からフ
ロントサイドを切り離したい
● クエリの修正はテンプレートだけで完結したい
elastic-scala-httpclient
● HTTPのRESTで通信
するScalaクライアント
● マッピングするScalaの
クラスを自動生成する
ジェネレータを提供
(参考)こんなのも
● 接続方式はTransport Client or Node Client
● クエリをDSLで書ける
やってみて思ったこと
● クエリがJSONで辛い
○ クエリがバグっていると結果が真っ白に
○ 検索結果(クオリティ)を改善していく管理機能を用意
● 要件が安定するまでスキーマを何度も作り直
す。この作業が結構辛い
○ Alter文とか無いので最初からやり直し
○ 今後も変更はあるのでdynamicフィールドを採用へ
データの投入
元ネタ
● クロールで取得
● ノンブロッキングIOを使うことでサーバのリソー
スを効率良く活用
※詳細はScalaの話なので割愛
初期の課題
● HTMLを解析する部分は何度も改善して徐々に
品質を上げていく必要があった
○ その度に再クロールなんてやってられない
● データ量は増加の一途で想定量を考慮すると、
モノリシックでは太刀打ちできない
○ バッチ処理フレームワーク、分散処理がキーワード
そこでSparkですよ!
Apache Sparkとは
● Scala製の高速バッチ処理フレームワーク
● Hadoopが苦手としているスループットとレイテ
ンシの両立が必要な問題領域にアプローチする
ために開発された
● 簡単なコードで分散処理が可能
● Spark SQL、Spark Streaming、MLlibなど、
様々なサブプロジェクトが存在
Elasticsearch for Hadoop
● elasticsearch-hadoopに含まれるApache
Spark Supportを使うことで、Sparkのストレー
ジとしてElasticsearchを使える
HadoopからESへ投入
Hadoop上でESから抽出
投入部分のアーキテクチャ(初期)
クロール
Elasticsearch
HTML
インデキシング
JSON
Elasticsearch
JSON
クロールした情報を一
旦ESへ投入
データを加工して検索
用ESへ投入
ねらい
● HTML解析やインデキシング部分だけを部分的
に実行できる
○ 初期の課題を解決する形
● 複数のインデックスを結合できる
○ 時間のかかるデータを前もって作っておき、インデキシ
ング時に_idで結合する
インデックスを結合
val conf = new SparkConf().setAll(Seq(
ES_RESOURCE -> "job/sample",
ES_QUERY -> "?q=*:*"
))
val spark = new SparkContext(conf)
import SparkContext._
val rdd = spark.esRDD.leftOuterJoin(spark.esRDD(Map(
ES_RESOURCE -> "geo/sample",
ES_QUERY -> "?q=*:*"
))).flatMap { case (_id, (_source, geo)) =>
geo.map { x =>
_source ++ Map("workLocation" -> x("workLocation"))
}
}
jobインデックスに
geoインデックスを外部結合
最適なストレージ
● 「Sparkは高速」「Sparkの耐障害性は高い」とい
うのは、ストレージとしてファイルを想定した話
○ 今後ファイル以外も改善していきたいそう
● ファイル以外のストレージを扱う場合は注意が
必要
○ es-sparkには耐障害性のために必要なチェックポイント
の実装が無い
なぜ採用したか
● 辞書更新が最大の懸念
○ 特に初期は辞書更新が頻繁に発生
○ 再インデックスを考慮したアーキテクチャ
● rawデータの更新・削除の必要性
○ ファイルだと厳しい
● アーキテクチャの統一による運用のしやすさ
● 辞書更新が最大の懸念
○ 特に初期は辞書更新が頻繁に発生
○ 再インデックスを考慮したアーキテクチャ
● rawデータの更新・削除の必要性
○ ファイルだと厳しい
● アーキテクチャの統一による運用のしやすさ
事件発生!!
なぜ採用したか
事件その1
タスクが分割されない
mapのタスク数 = シャード数
タスクが分割されない
● ESからプライマリシャードの情報を取得
○ レプリカは使わない
● 各シャードが持つドキュメントを分割した入力値
として扱う
○ 当初は1シャードのため、シャード数を増やした
事件その2
Sparkしすぎてシャードが壊れる
リカバリに失敗して欠損
シャードが欠損
● Sparkによってものすごい勢いで書き込みを
行っているときにリカバリが走った場合、耐えき
れず一部シャードが壊れる
● リカバリの負荷を下げることでコピーしながら書
き込みを受け付けられるように、以下の値を小
さくした
○ indices.recovery.max_bytes_per_sec
○ indices.recovery.concurrent_streams
課題
● データの鮮度が落ちる
○ 1日1回のバッチ反映では遅い
○ 想定以上にデータの生存期間が短い
■ 自然淘汰にまかせてもよいのでは
■ 全件インデックスはいずれ量的限界
● リソースに無駄がある
○ 瞬間的に高スペックが求められるが、遊んでいる時間が
結構ある
Spark Streaming
● Sparkで擬似的にストリーム処理を行うライブラ
リ
○ Sparkはあくまでバッチ処理で、処理を超分割してショー
トバッチにして実行
○ バッチとストリームで基盤を統一できるメリットがある
● クロールを一定間隔で行っているので、Spark
Streamingのしくみとマッチ
投入部分のアーキテクチャ(現在)
クロール
Elasticsearch
JSON
es-sparkはそのまま
利用可能
HTML
SparkはS3の特定の
バケットを監視
数分間隔にウィンド
ウ幅を設定
コード例
val spark = new StreamingContext(new SparkConf, Minutes(1))
val dstream = spark.textFileStream("s3n://hoge/test")
.flatMap(_ split "n")
.map(...)
.transform(... RDDに対する処理 ...)
.foreachRDD { rdd =>
// saving data only if DStream is not empty
if(!rdd.isEmpty) rdd.saveToEs(Map(
ES_NODES -> "localhost",
ES_RESOURCE -> "job/sample"
))
}
バッチと同様、RDDに対して
saveToEsを実行
効果
● Elasticsearchは検索部分に特化
○ 本来の役割へ
● inputをファイルにしたことでMapタスク数が
シャード数のような外的要因に依存しない形に
○ 収集して数分で表へ反映
まとめ
● 最初は数台のクラスタで始めて、徐々にスケー
ルアウトが比較的容易に可能
○ ちょっとした検証にDocker使ったり
● elasticsearch-sparkはbeta版だが利用には問
題ない
○ ただし、設定しても効かない項目があったりintegration
間で整合性が取れてない部分も

More Related Content

What's hot

スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?Sotaro Kimura
 
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrbCapistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrbTsubasa Yumura
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize ToolsKazuki Ueki
 
How Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSHow Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSYoshinori Kawasaki
 
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューションクラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューションShinya Mori (@mosuke5)
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編Kazuya Numata
 
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作SQLによるDynamoDBの操作
SQLによるDynamoDBの操作Sugawara Genki
 
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27Tetsuya Mase
 
DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴Sugawara Genki
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121Teruo Kawasaki
 
20140930 anything as_code
20140930 anything as_code20140930 anything as_code
20140930 anything as_codeSugawara Genki
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義するSugawara Genki
 
Cloud automator的なものを実装してみる
Cloud automator的なものを実装してみるCloud automator的なものを実装してみる
Cloud automator的なものを実装してみるsaku hatsu
 
AWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroAWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroKenta Suzuki
 
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)Shinya Mori (@mosuke5)
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集matsu_chara
 
Web技術勉強会第1回目
Web技術勉強会第1回目Web技術勉強会第1回目
Web技術勉強会第1回目龍一 田中
 

What's hot (20)

スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
 
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrbCapistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrb
 
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
 
Ruby on Rails on Azure
Ruby on Rails on AzureRuby on Rails on Azure
Ruby on Rails on Azure
 
How Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSHow Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWS
 
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューションクラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
 
Elasticsearch at Makuake
Elasticsearch at MakuakeElasticsearch at Makuake
Elasticsearch at Makuake
 
前座Lambda
前座Lambda前座Lambda
前座Lambda
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
 
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
 
DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121
 
20140930 anything as_code
20140930 anything as_code20140930 anything as_code
20140930 anything as_code
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義する
 
Cloud automator的なものを実装してみる
Cloud automator的なものを実装してみるCloud automator的なものを実装してみる
Cloud automator的なものを実装してみる
 
AWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroAWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguro
 
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)
知られざる。Alibaba Cloudを支えるテクノロジー (manabiya.tech)
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
 
Web技術勉強会第1回目
Web技術勉強会第1回目Web技術勉強会第1回目
Web技術勉強会第1回目
 

Viewers also liked

Otsuma(2010427)
Otsuma(2010427)Otsuma(2010427)
Otsuma(2010427)真 岡本
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるKatsushi Yamashita
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド崇介 藤井
 
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Recruit Technologies
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
Eimear Hennessy, Business Unit Director - Nielsen
Eimear Hennessy, Business Unit Director - NielsenEimear Hennessy, Business Unit Director - Nielsen
Eimear Hennessy, Business Unit Director - NielsenFiona Dunphy
 
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...Francesco Paolo Micozzi
 
[mrktic] Lead Nurturing - El secreto de un buen nurturing
[mrktic] Lead Nurturing - El secreto de un buen nurturing[mrktic] Lead Nurturing - El secreto de un buen nurturing
[mrktic] Lead Nurturing - El secreto de un buen nurturingMrktic
 
Penuntun belajar manajemen asfiksia 3 nov 20081.3.2.5 AKPER PEMKAB MUNA
Penuntun belajar manajemen asfiksia   3 nov 20081.3.2.5 AKPER PEMKAB MUNA Penuntun belajar manajemen asfiksia   3 nov 20081.3.2.5 AKPER PEMKAB MUNA
Penuntun belajar manajemen asfiksia 3 nov 20081.3.2.5 AKPER PEMKAB MUNA Operator Warnet Vast Raha
 
11 mistakes You Should Avoid Investigating a Franchise
11 mistakes You Should Avoid Investigating a Franchise11 mistakes You Should Avoid Investigating a Franchise
11 mistakes You Should Avoid Investigating a FranchiseBin There Dump That
 
La ideología de género sus peligros y alcances
La ideología de género   sus peligros y alcancesLa ideología de género   sus peligros y alcances
La ideología de género sus peligros y alcancesRamón Copa
 
หลักสูตร Gifographic
หลักสูตร Gifographicหลักสูตร Gifographic
หลักสูตร Gifographicsmittichai chaiyawong
 
SMART HRM SOFTWARE
SMART HRM SOFTWARESMART HRM SOFTWARE
SMART HRM SOFTWARERamya MBA
 
Using your business plan to source for funds
Using your business plan to source for fundsUsing your business plan to source for funds
Using your business plan to source for fundsAngela Ihunweze
 
Sensuでネットワーク監視やってみた
Sensuでネットワーク監視やってみたSensuでネットワーク監視やってみた
Sensuでネットワーク監視やってみたAkihiko Horiuchi
 
Detoxification Station
Detoxification StationDetoxification Station
Detoxification StationBrian Levins
 

Viewers also liked (18)

Otsuma(2010427)
Otsuma(2010427)Otsuma(2010427)
Otsuma(2010427)
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみる
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
 
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
Eimear Hennessy, Business Unit Director - Nielsen
Eimear Hennessy, Business Unit Director - NielsenEimear Hennessy, Business Unit Director - Nielsen
Eimear Hennessy, Business Unit Director - Nielsen
 
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...
Incontro di formazione su diffamazione, ingiuria e calunnia per iscrizione al...
 
[mrktic] Lead Nurturing - El secreto de un buen nurturing
[mrktic] Lead Nurturing - El secreto de un buen nurturing[mrktic] Lead Nurturing - El secreto de un buen nurturing
[mrktic] Lead Nurturing - El secreto de un buen nurturing
 
Penuntun belajar manajemen asfiksia 3 nov 20081.3.2.5 AKPER PEMKAB MUNA
Penuntun belajar manajemen asfiksia   3 nov 20081.3.2.5 AKPER PEMKAB MUNA Penuntun belajar manajemen asfiksia   3 nov 20081.3.2.5 AKPER PEMKAB MUNA
Penuntun belajar manajemen asfiksia 3 nov 20081.3.2.5 AKPER PEMKAB MUNA
 
11 mistakes You Should Avoid Investigating a Franchise
11 mistakes You Should Avoid Investigating a Franchise11 mistakes You Should Avoid Investigating a Franchise
11 mistakes You Should Avoid Investigating a Franchise
 
Agile philosophy
Agile philosophyAgile philosophy
Agile philosophy
 
Easy Weeknight Meals
Easy Weeknight MealsEasy Weeknight Meals
Easy Weeknight Meals
 
La ideología de género sus peligros y alcances
La ideología de género   sus peligros y alcancesLa ideología de género   sus peligros y alcances
La ideología de género sus peligros y alcances
 
หลักสูตร Gifographic
หลักสูตร Gifographicหลักสูตร Gifographic
หลักสูตร Gifographic
 
SMART HRM SOFTWARE
SMART HRM SOFTWARESMART HRM SOFTWARE
SMART HRM SOFTWARE
 
Using your business plan to source for funds
Using your business plan to source for fundsUsing your business plan to source for funds
Using your business plan to source for funds
 
Sensuでネットワーク監視やってみた
Sensuでネットワーク監視やってみたSensuでネットワーク監視やってみた
Sensuでネットワーク監視やってみた
 
Detoxification Station
Detoxification StationDetoxification Station
Detoxification Station
 

Similar to Spark in small or middle scale data processing with Elasticsearch

Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバShinsuke Sugaya
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能Masaki Suzuki
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようKazuhiro Hara
 
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」Hiromitsu Ito
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphOshitari_kochi
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)Takanori Sejima
 
CfnClusterを使って10分強でHPC環境を構築する
CfnClusterを使って10分強でHPC環境を構築するCfnClusterを使って10分強でHPC環境を構築する
CfnClusterを使って10分強でHPC環境を構築するDaisuke Nagao
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commonschibochibo
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Yasuaki Matsuda
 
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Ryoji Kurosawa
 
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみるSaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみるMasashi Murakami
 
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点Horiguchi Seito
 
Elastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件についてElastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件についてTakaaki Hoyo
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦するAWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦するKahori Takeda
 

Similar to Spark in small or middle scale data processing with Elasticsearch (20)

Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
 
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL Graph
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
CfnClusterを使って10分強でHPC環境を構築する
CfnClusterを使って10分強でHPC環境を構築するCfnClusterを使って10分強でHPC環境を構築する
CfnClusterを使って10分強でHPC環境を構築する
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commons
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
Trat sprint9
Trat sprint9Trat sprint9
Trat sprint9
 
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方
 
PostgreSQL失敗談
PostgreSQL失敗談PostgreSQL失敗談
PostgreSQL失敗談
 
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみるSaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
 
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
 
Elastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件についてElastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件について
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦するAWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 

More from chibochibo

Tour of Apache PredictionIO in 10 Minutes
Tour of Apache PredictionIO in 10 MinutesTour of Apache PredictionIO in 10 Minutes
Tour of Apache PredictionIO in 10 Minuteschibochibo
 
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching PatternDeadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching Patternchibochibo
 
Dynamic SQL in doobie
Dynamic SQL in doobieDynamic SQL in doobie
Dynamic SQL in doobiechibochibo
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?chibochibo
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -chibochibo
 
Quartzでcronを範囲検索したい
Quartzでcronを範囲検索したいQuartzでcronを範囲検索したい
Quartzでcronを範囲検索したいchibochibo
 
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingchibochibo
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったchibochibo
 
What's a macro?: Learning by Examples
What's a macro?: Learning by ExamplesWhat's a macro?: Learning by Examples
What's a macro?: Learning by Exampleschibochibo
 
Spring Boot Introduction
Spring Boot IntroductionSpring Boot Introduction
Spring Boot Introductionchibochibo
 

More from chibochibo (12)

Tour of Apache PredictionIO in 10 Minutes
Tour of Apache PredictionIO in 10 MinutesTour of Apache PredictionIO in 10 Minutes
Tour of Apache PredictionIO in 10 Minutes
 
LocalStack
LocalStackLocalStack
LocalStack
 
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching PatternDeadly Code! (seriously) Blocking & Hyper Context Switching Pattern
Deadly Code! (seriously) Blocking & Hyper Context Switching Pattern
 
Dynamic SQL in doobie
Dynamic SQL in doobieDynamic SQL in doobie
Dynamic SQL in doobie
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -
 
Quartzでcronを範囲検索したい
Quartzでcronを範囲検索したいQuartzでcronを範囲検索したい
Quartzでcronを範囲検索したい
 
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
 
What's a macro?: Learning by Examples
What's a macro?: Learning by ExamplesWhat's a macro?: Learning by Examples
What's a macro?: Learning by Examples
 
Spring Boot Introduction
Spring Boot IntroductionSpring Boot Introduction
Spring Boot Introduction
 
Slick入門
Slick入門Slick入門
Slick入門
 

Spark in small or middle scale data processing with Elasticsearch