Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
elasticsearch-­‐hadoopを
使ってごにょごにょ
してみる	
 
@yamakatu	
  
第4回	
 Elas-csearch勉強会	
  
2014/4/21	
  	
  
おまえだれよ	
 
•  @yamakatu	
  
•  仕事:検索方面	
  
•  自称フルスタックイクメンエンジニア	
  
•  開発、インフラ、機械学習、統計、検索、育児	
  
•  gihyo.jp連載「Mahoutで体感する機...
シナリオ:ある日の偉い人	
 
うちのECサイトの検索どうに
かして。	
  
あ、ついでになんかすごそう
だから、ビッグデータ的な分
析とかしたい。てへぺろ	
  
どうしよう	
 
•  検索:Elas-csearch	
  
•  集計、分析:Kibanaは可視化できるけど、たいした集計
はできないから、、、Hiveあたり行っとく?	
  
•  懸念	
  
•  Elas-csearchもHadoo...
インフラエンジニア(白目
予算は?
じゃあ、どうする?アイフルー	
 
•  Elas-csearchとHadoopそれぞれにデータ置く必要ないん
じゃね?	
  
•  できるのか、、、俺たちにそんなことが、、、	
  
	
  
	
  
•  そう、elas-csearch...
What’s	
  elasticsearch-­‐hadoop	
 
•  HadoopからElas-csearchをストレージとして利用する	
  
	
  
•  何ができるの?	
  
1.  MapReduce	
  	
  ➡	
 ...
でも使うの大変なんでしょ
う?
MapReduceでread(旧API	
  ver.)	
 
•  Elas-csearchの接続先やクエリをconfに設定	
  
•  レスオンスのドキュメント1件で1Mapタスク(変えれ
る?)	
  
•  追記	
  
•  正しく...
MapReduceでwrite(旧API	
  ver.)	
 
•  MapReduceの出力をJsonで用意すれば、Elas-csearchに対
するjsonに	
  
	
  
・サンプル	
  
JobConf	
  conf	
  =...
Hive(read)	
 
•  テーブル作成	
  
CREATE	
  EXTERNAL	
  TABLE	
  flight	
  (	
  
	
  	
  month	
  int,	
  
	
  	
  uniquecarrier	...
Hive(write)	
 
•  テーブル作成	
  
•  (ry	
  
•  insertするだけ
Pig
でも、おそいんでしょう?
評価	
 
•  データ	
  
•  DATA	
  Expo	
  ’09から2007年のアメリカの航空客データ	
  
•  約750万件	
  
•  Hive	
  
•  飛行距離の平均値と標準偏差を求めてみる	
  
	
  
評価	
 
•  比較対象	
  
1.  普通にHadoopを利用	
  
•  tasktracker(datanode同居)	
  x3	
  
2.  Hadoop	
  と	
 Elas-csearch	
  を別ノードで構築	
  ...
結果	
 
1.  普通にHadoopを利用	
  
•  tasktracker(datanode同居)	
  x3	
  
•  約60ms	
  
2.  HadoopとElas-csearch	
  を別ノードで構築	
  
•  ta...
まとめ	
 
•  elas-csearch-­‐hadoopを使うとHadoopのストレージとして
Elas-csearchが使える	
  
•  便利	
  
•  簡単に使える	
  
•  だたし速くはない	
  
•  ただし本当は、...
ご静聴ありがとうございまし
た
追記	
 
•  評価で利用したHiveクエリ	
  
•  select	
  avg(distance),	
  stddev(distance)	
  from	
  flight	
  
•  評価は各3回計測。ほぼ同じ。	
  
•  ...
Próxima SlideShare
Cargando en…5
×

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

14.530 visualizaciones

Publicado el

Publicado en: Tecnología, Educación
  • Inicia sesión para ver los comentarios

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

  1. 1. elasticsearch-­‐hadoopを 使ってごにょごにょ してみる @yamakatu   第4回 Elas-csearch勉強会   2014/4/21    
  2. 2. おまえだれよ •  @yamakatu   •  仕事:検索方面   •  自称フルスタックイクメンエンジニア   •  開発、インフラ、機械学習、統計、検索、育児   •  gihyo.jp連載「Mahoutで体感する機械学習の実践」   •  合い言葉は「読まずに、はてブだけして」  
  3. 3. シナリオ:ある日の偉い人 うちのECサイトの検索どうに かして。   あ、ついでになんかすごそう だから、ビッグデータ的な分 析とかしたい。てへぺろ  
  4. 4. どうしよう •  検索:Elas-csearch   •  集計、分析:Kibanaは可視化できるけど、たいした集計 はできないから、、、Hiveあたり行っとく?   •  懸念   •  Elas-csearchもHadoopも別にサーバを用意しなければならな い  
  5. 5. インフラエンジニア(白目
  6. 6. 予算は?
  7. 7. じゃあ、どうする?アイフルー •  Elas-csearchとHadoopそれぞれにデータ置く必要ないん じゃね?   •  できるのか、、、俺たちにそんなことが、、、       •  そう、elas-csearch-­‐hadoopならね!!!
  8. 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で実装したライブラリ)の流用   •  とかとか  
  9. 9. でも使うの大変なんでしょ う?
  10. 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. 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. 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. 13. Hive(write) •  テーブル作成   •  (ry   •  insertするだけ
  14. 14. Pig
  15. 15. でも、おそいんでしょう?
  16. 16. 評価 •  データ   •  DATA  Expo  ’09から2007年のアメリカの航空客データ   •  約750万件   •  Hive   •  飛行距離の平均値と標準偏差を求めてみる    
  17. 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. 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. 19. まとめ •  elas-csearch-­‐hadoopを使うとHadoopのストレージとして Elas-csearchが使える   •  便利   •  簡単に使える   •  だたし速くはない   •  ただし本当は、やれば出来る子なのかもしれない  
  20. 20. ご静聴ありがとうございまし た
  21. 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  

×