SlideShare a Scribd company logo
1 of 21
Download to read offline
elasticsearch-­‐hadoopを
使ってごにょごにょ
してみる	
 
@yamakatu	
  
第4回	
 Elas-csearch勉強会	
  
2014/4/21	
  	
  
おまえだれよ	
 
•  @yamakatu	
  
•  仕事:検索方面	
  
•  自称フルスタックイクメンエンジニア	
  
•  開発、インフラ、機械学習、統計、検索、育児	
  
•  gihyo.jp連載「Mahoutで体感する機械学習の実践」	
  
•  合い言葉は「読まずに、はてブだけして」	
  
シナリオ:ある日の偉い人	
 
うちのECサイトの検索どうに
かして。	
  
あ、ついでになんかすごそう
だから、ビッグデータ的な分
析とかしたい。てへぺろ	
  
どうしよう	
 
•  検索:Elas-csearch	
  
•  集計、分析:Kibanaは可視化できるけど、たいした集計
はできないから、、、Hiveあたり行っとく?	
  
•  懸念	
  
•  Elas-csearchもHadoopも別にサーバを用意しなければならな
い	
  
インフラエンジニア(白目
予算は?
じゃあ、どうする?アイフルー	
 
•  Elas-csearchとHadoopそれぞれにデータ置く必要ないん
じゃね?	
  
•  できるのか、、、俺たちにそんなことが、、、	
  
	
  
	
  
•  そう、elas-csearch-­‐hadoopならね!!!
What’s	
  elasticsearch-­‐hadoop	
 
•  HadoopからElas-csearchをストレージとして利用する	
  
	
  
•  何ができるの?	
  
1.  MapReduce	
  	
  ➡	
  Elas-csearch	
  にread/write	
  
2.  Hive	
  ➡	
  Elas-csearch	
  にread/write	
  
3.  Pig	
  ➡	
  Elas-csearch	
  にread/write	
  
•  何が幸せ?たとえば、	
  
•  SQLが書ける程度の非エンジニアでもHiveでElas-csearchの
データでごにょごにょできる	
  
•  Elas-csearchの検索結果をMapReduceでごにょごにょしやす
い	
  
•  既存資産(ex.	
  MapReduceで実装したライブラリ)の流用	
  
•  とかとか	
  
でも使うの大変なんでしょ
う?
MapReduceでread(旧API	
  ver.)	
 
•  Elas-csearchの接続先やクエリをconfに設定	
  
•  レスオンスのドキュメント1件で1Mapタスク(変えれ
る?)	
  
•  追記	
  
•  正しくは、Mapタスク数イコールPrimary	
  Shardの数です。	
  
•  サンプル	
  
JobConf	
  conf	
  =	
  new	
  JobConf(Main.class);	
  
	
  
conf.set(“es.nodes”,	
  “localhost:9200”);	
  //host:port	
 
conf.set(“es.resource”,	
  “flight/2007”);	
  //index/type	
 
conf.set("es.query",	
  "?q=*");	
  //query	
  
conf.setInputFormat(EsInputFormat.class);	
  //input元としてES	
  
	
  
MapReduceでwrite(旧API	
  ver.)	
 
•  MapReduceの出力をJsonで用意すれば、Elas-csearchに対
するjsonに	
  
	
  
・サンプル	
  
JobConf	
  conf	
  =	
  new	
  JobConf(Main.class);	
  
	
  
conf.setSpecula-veExecu-on(false);	
  
conf.set(“es.nodes”,	
  “localhost:9200”);	
  //host:port	
  
conf.set("es.resource",	
  "test/user");	
  //index/type	
  
conf.setOutputFormat(EsOutputFormat.class);	
  //output先にES
を指定	
 
conf.set("es.input.json",	
  "yes");	
  	
  
	
  
Hive(read)	
 
•  テーブル作成	
  
CREATE	
  EXTERNAL	
  TABLE	
  flight	
  (	
  
	
  	
  month	
  int,	
  
	
  	
  uniquecarrier	
  string,	
  
	
  	
  …	
  
)	
  STORED	
  BY	
  'org.elas-csearch.hadoop.hive.EsStorageHandler'	
  
TBLPROPERTIES(	
  
	
  	
  'es.resource'	
  =	
  'flight/2007',	
  
	
  	
  'es.host'	
  =	
  ’localhost',	
  
	
  	
  'es.port'	
  =	
  '9200'	
  
);	
  
•  後はSelectするだけ	
  
Hive(write)	
 
•  テーブル作成	
  
•  (ry	
  
•  insertするだけ
Pig
でも、おそいんでしょう?
評価	
 
•  データ	
  
•  DATA	
  Expo	
  ’09から2007年のアメリカの航空客データ	
  
•  約750万件	
  
•  Hive	
  
•  飛行距離の平均値と標準偏差を求めてみる	
  
	
  
評価	
 
•  比較対象	
  
1.  普通にHadoopを利用	
  
•  tasktracker(datanode同居)	
  x3	
  
2.  Hadoop	
  と	
 Elas-csearch	
  を別ノードで構築	
  
•  tasktracker	
  x3,	
  Elas-csearch	
  x3	
  
•  シャード6つ、レプリカ2つずつ	
  
3.  Hadoop	
  と	
 Elas-csearch	
  を同一ノードで構築	
  
•  (tasktracker	
  +	
  Elas-csearch)	
  x3	
  
•  シャード6つ、レプリカ2つずつ	
  
•  スペック	
  
•  すべてEC2	
  m3.xlarge	
  
•  4vCPU,	
  13ECU,	
  RAM	
  15GB	
  
•  Elas-csearch	
  
•  op-mize済み	
  
•  ウォームアップ済み
結果	
 
1.  普通にHadoopを利用	
  
•  tasktracker(datanode同居)	
  x3	
  
•  約60ms	
  
2.  HadoopとElas-csearch	
  を別ノードで構築	
  
•  tasktracker	
  x3,	
  Elas-csearch	
  x3	
  
•  約600ms	
  
3.  HadoopとElas-csearch	
  を同一ノードで構築	
  
•  (tasktracker	
  +	
  Elas-csearch)	
  x3	
  
•  約520ms	
  
•  遅い、、、なんか見落としがあるのかもしれん(キリ	
  
まとめ	
 
•  elas-csearch-­‐hadoopを使うとHadoopのストレージとして
Elas-csearchが使える	
  
•  便利	
  
•  簡単に使える	
  
•  だたし速くはない	
  
•  ただし本当は、やれば出来る子なのかもしれない	
  
ご静聴ありがとうございまし
た
追記	
 
•  評価で利用したHiveクエリ	
  
•  select	
  avg(distance),	
  stddev(distance)	
  from	
  flight	
  
•  評価は各3回計測。ほぼ同じ。	
  
•  elas-csearch-­‐hadoopを利用するために、elas-csearch-­‐
hadoop.jarをパスに通す必要があります	
  
•  MapReduce	
  
•  hqp://www.elas-csearch.org/guide/en/elas-csearch/hadoop/
current/mapreduce.html#_installa-on	
  
•  Hive	
  
•  hqp://www.elas-csearch.org/guide/en/elas-csearch/hadoop/
current/hive.html#_installa-on_3	
  

More Related Content

What's hot

Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザNoritaka Sekiyama
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTT DATA OSS Professional Services
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...NTT DATA OSS Professional Services
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較Yoshiyasu SAEKI
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Preferred Networks
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
Apache Spark 2.4 and 3.0 What's Next?
Apache Spark 2.4 and 3.0  What's Next? Apache Spark 2.4 and 3.0  What's Next?
Apache Spark 2.4 and 3.0 What's Next?
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 

Similar to elasticsearch-hadoopをつかってごにょごにょしてみる

黄色い象と共に生きる
黄色い象と共に生きる黄色い象と共に生きる
黄色い象と共に生きるKazuhiro Ota
 
1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systemsHiroyuki Yamada
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
HadoopことはじめKatsunori Kanda
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13Seiei Higa
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13hanachin
 
趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方Koichi Ota
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料Takashi Aoe
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
HiveハンズオンSatoshi Noto
 
sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16Yifeng Jiang
 
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編GoAzure
 
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩Fumito Ito
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門Masaya Dake
 
VPSやめてHerokuに移行したお話
VPSやめてHerokuに移行したお話VPSやめてHerokuに移行したお話
VPSやめてHerokuに移行したお話Hiroyuki Hayashi
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバShinsuke Sugaya
 
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
HBase×Impalaで作るアドテク「GMOプライベートDMP」@HBaseMeetupTokyo2015SummerHBase×Impalaで作るアドテク「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015SummerMichio Katano
 

Similar to elasticsearch-hadoopをつかってごにょごにょしてみる (20)

黄色い象と共に生きる
黄色い象と共に生きる黄色い象と共に生きる
黄色い象と共に生きる
 
1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
Hiveハンズオン
 
sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16
 
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
 
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
VPSやめてHerokuに移行したお話
VPSやめてHerokuに移行したお話VPSやめてHerokuに移行したお話
VPSやめてHerokuに移行したお話
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
Reading drill
Reading drillReading drill
Reading drill
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
 
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
HBase×Impalaで作るアドテク「GMOプライベートDMP」@HBaseMeetupTokyo2015SummerHBase×Impalaで作るアドテク「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
 

More from Katsushi Yamashita

CROSS 2015 全文検索群雄割拠
CROSS 2015 全文検索群雄割拠CROSS 2015 全文検索群雄割拠
CROSS 2015 全文検索群雄割拠Katsushi Yamashita
 
「データ解析のための統計モデリング入門」読書会 最終回 クロージング
「データ解析のための統計モデリング入門」読書会 最終回 クロージング「データ解析のための統計モデリング入門」読書会 最終回 クロージング
「データ解析のための統計モデリング入門」読書会 最終回 クロージングKatsushi Yamashita
 
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半#みどりぼん 11章「空間構造のある階層ベイズモデル」後半
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半Katsushi Yamashita
 
第1回「データ解析のための統計モデリング入門」読書会 オープニング
第1回「データ解析のための統計モデリング入門」読書会 オープニング第1回「データ解析のための統計モデリング入門」読書会 オープニング
第1回「データ解析のための統計モデリング入門」読書会 オープニングKatsushi Yamashita
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Katsushi Yamashita
 
はじパタ 10章 クラスタリング 前半
はじパタ 10章 クラスタリング 前半はじパタ 10章 クラスタリング 前半
はじパタ 10章 クラスタリング 前半Katsushi Yamashita
 

More from Katsushi Yamashita (6)

CROSS 2015 全文検索群雄割拠
CROSS 2015 全文検索群雄割拠CROSS 2015 全文検索群雄割拠
CROSS 2015 全文検索群雄割拠
 
「データ解析のための統計モデリング入門」読書会 最終回 クロージング
「データ解析のための統計モデリング入門」読書会 最終回 クロージング「データ解析のための統計モデリング入門」読書会 最終回 クロージング
「データ解析のための統計モデリング入門」読書会 最終回 クロージング
 
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半#みどりぼん 11章「空間構造のある階層ベイズモデル」後半
#みどりぼん 11章「空間構造のある階層ベイズモデル」後半
 
第1回「データ解析のための統計モデリング入門」読書会 オープニング
第1回「データ解析のための統計モデリング入門」読書会 オープニング第1回「データ解析のための統計モデリング入門」読書会 オープニング
第1回「データ解析のための統計モデリング入門」読書会 オープニング
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
 
はじパタ 10章 クラスタリング 前半
はじパタ 10章 クラスタリング 前半はじパタ 10章 クラスタリング 前半
はじパタ 10章 クラスタリング 前半
 

Recently uploaded

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

elasticsearch-hadoopをつかってごにょごにょしてみる

  • 2. おまえだれよ •  @yamakatu   •  仕事:検索方面   •  自称フルスタックイクメンエンジニア   •  開発、インフラ、機械学習、統計、検索、育児   •  gihyo.jp連載「Mahoutで体感する機械学習の実践」   •  合い言葉は「読まずに、はてブだけして」  
  • 4. どうしよう •  検索:Elas-csearch   •  集計、分析:Kibanaは可視化できるけど、たいした集計 はできないから、、、Hiveあたり行っとく?   •  懸念   •  Elas-csearchもHadoopも別にサーバを用意しなければならな い  
  • 7. じゃあ、どうする?アイフルー •  Elas-csearchとHadoopそれぞれにデータ置く必要ないん じゃね?   •  できるのか、、、俺たちにそんなことが、、、       •  そう、elas-csearch-­‐hadoopならね!!!
  • 8. What’s  elasticsearch-­‐hadoop •  HadoopからElas-csearchをストレージとして利用する     •  何ができるの?   1.  MapReduce    ➡  Elas-csearch  にread/write   2.  Hive  ➡  Elas-csearch  にread/write   3.  Pig  ➡  Elas-csearch  にread/write   •  何が幸せ?たとえば、   •  SQLが書ける程度の非エンジニアでもHiveでElas-csearchの データでごにょごにょできる   •  Elas-csearchの検索結果をMapReduceでごにょごにょしやす い   •  既存資産(ex.  MapReduceで実装したライブラリ)の流用   •  とかとか  
  • 10. MapReduceでread(旧API  ver.) •  Elas-csearchの接続先やクエリをconfに設定   •  レスオンスのドキュメント1件で1Mapタスク(変えれ る?)   •  追記   •  正しくは、Mapタスク数イコールPrimary  Shardの数です。   •  サンプル   JobConf  conf  =  new  JobConf(Main.class);     conf.set(“es.nodes”,  “localhost:9200”);  //host:port conf.set(“es.resource”,  “flight/2007”);  //index/type conf.set("es.query",  "?q=*");  //query   conf.setInputFormat(EsInputFormat.class);  //input元としてES    
  • 11. MapReduceでwrite(旧API  ver.) •  MapReduceの出力をJsonで用意すれば、Elas-csearchに対 するjsonに     ・サンプル   JobConf  conf  =  new  JobConf(Main.class);     conf.setSpecula-veExecu-on(false);   conf.set(“es.nodes”,  “localhost:9200”);  //host:port   conf.set("es.resource",  "test/user");  //index/type   conf.setOutputFormat(EsOutputFormat.class);  //output先にES を指定 conf.set("es.input.json",  "yes");      
  • 12. Hive(read) •  テーブル作成   CREATE  EXTERNAL  TABLE  flight  (      month  int,      uniquecarrier  string,      …   )  STORED  BY  'org.elas-csearch.hadoop.hive.EsStorageHandler'   TBLPROPERTIES(      'es.resource'  =  'flight/2007',      'es.host'  =  ’localhost',      'es.port'  =  '9200'   );   •  後はSelectするだけ  
  • 13. Hive(write) •  テーブル作成   •  (ry   •  insertするだけ
  • 14. Pig
  • 16. 評価 •  データ   •  DATA  Expo  ’09から2007年のアメリカの航空客データ   •  約750万件   •  Hive   •  飛行距離の平均値と標準偏差を求めてみる    
  • 17. 評価 •  比較対象   1.  普通にHadoopを利用   •  tasktracker(datanode同居)  x3   2.  Hadoop  と Elas-csearch  を別ノードで構築   •  tasktracker  x3,  Elas-csearch  x3   •  シャード6つ、レプリカ2つずつ   3.  Hadoop  と Elas-csearch  を同一ノードで構築   •  (tasktracker  +  Elas-csearch)  x3   •  シャード6つ、レプリカ2つずつ   •  スペック   •  すべてEC2  m3.xlarge   •  4vCPU,  13ECU,  RAM  15GB   •  Elas-csearch   •  op-mize済み   •  ウォームアップ済み
  • 18. 結果 1.  普通にHadoopを利用   •  tasktracker(datanode同居)  x3   •  約60ms   2.  HadoopとElas-csearch  を別ノードで構築   •  tasktracker  x3,  Elas-csearch  x3   •  約600ms   3.  HadoopとElas-csearch  を同一ノードで構築   •  (tasktracker  +  Elas-csearch)  x3   •  約520ms   •  遅い、、、なんか見落としがあるのかもしれん(キリ  
  • 19. まとめ •  elas-csearch-­‐hadoopを使うとHadoopのストレージとして Elas-csearchが使える   •  便利   •  簡単に使える   •  だたし速くはない   •  ただし本当は、やれば出来る子なのかもしれない  
  • 21. 追記 •  評価で利用したHiveクエリ   •  select  avg(distance),  stddev(distance)  from  flight   •  評価は各3回計測。ほぼ同じ。   •  elas-csearch-­‐hadoopを利用するために、elas-csearch-­‐ hadoop.jarをパスに通す必要があります   •  MapReduce   •  hqp://www.elas-csearch.org/guide/en/elas-csearch/hadoop/ current/mapreduce.html#_installa-on   •  Hive   •  hqp://www.elas-csearch.org/guide/en/elas-csearch/hadoop/ current/hive.html#_installa-on_3