Solr meeting in Japan 2011

1,082 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,082
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Solr meeting in Japan 2011

  1. 1. “Anuenue” の紹介と最近の進捗 紹介と最近の 伊藤 敬彦 1
  2. 2. 自己紹介奈良先端大情報科学研究課博士後期課程終了ファストサーチ社で日本語処理コンポーネントを開発ファストサーチ社の買収に伴いマイクロソフト社に半年程在籍ミクシィの研究開発グループでデータマイニング技術の調査,実装を行うTwitter アカウント: takahi_i 2
  3. 3. ミクシィ?ミクシィ日本で最大規模のソーシャルネットワークサービス.いくつものサービスを展開. 写真、日記、つぶやき等 検索機 多くのサービスが検索 検索 能を持つ月間アクティブユーザ数: 1500万人 3
  4. 4. (少々緊急)タスク 緊急)今利用されている内製検索エンジンを (メインテナンスしやすい)OSS に移行今までに Apache Solr を選択! インストール,運用を容易にするパッケージ Anuenue (アヌエヌエ) を作成 URL: http://code.google.com/p/anuenue-wrapper/ 4
  5. 5. 作成したのかなぜ Anuenue を作成したのかSolrの分散インストール / 運用はちょっと面倒 インスタンスごとに個別の設定が必要 クラスタ用のコマンドが提供されていない (最近できた?) • クライアントプログラムを自作する必要がある参考: Hadoop にはクラスタに対するコマンドが提供されている • 起動・終了 start-all.sh / stop-all.sh • ユーティリティ fsck (check all discs), balancer (rebalance the data blocks) 5
  6. 6. 提供する する機能Anuenue が提供する機能検索クラスタの簡単設定クラスタ用コマンド インデクスを変更 (post, delete, update, commit etc) クラスタの起動,終了日本語サポート もしかして検索用のハンドラ 日本語トークナイザ 6
  7. 7. 本日の本日のトピックAnuenue が提供する機能 検索クラスタのための簡単設定 クラスタに対する分散コマンド最近の進捗と将来 7
  8. 8. 本日の本日のトピックAnuenue が提供する機能 検索クラスタのための簡単設定 クラスタに対する分散コマンド最近の進捗と将来 8
  9. 9. クラスタ設定クラスタ設定クラスタ用の設定を一つの設定ファイル (anuenue-nodes.xml) で行うクラスタ内の Anuenue インスタンスはひとつ以上のロール ロール(役割)を付与される ロールはクラスタ内での機能を表す 三つのロール (Master, Slave, Merger) が存在する 9
  10. 10. ロール:ロール Master 入力データをインデクスする注: Anuenue は複数の Master インスタンスで分散 (shard)インデクスを作成するコマンドを提供する Master-1 Master-2 Master-3 Shard インデクスを作成 Input Data 10
  11. 11. ロール:ロール Slave三つの機能を持つ Merger-1 インデクスを Master か らコピー クエリ転送 Merger から転送された クエリを受理し,自身の Slave-1 Slave-2 インデクスを検索する インデクスのコピー 結果を Merger に返す Master-1 Master-2 インデクス作成 Input Data 11
  12. 12. ロール:ロール MergerクライアントからのクエリをSlave に転送 Client-1 Client-2 注: クライアントは slave インスタンスにつ クエリを発行 いて知らなくてよい (Merger が Slave 情 Merger 報を含む ‘shard’ パラ クエリの転送 メタを生成する)Slave が返した結果をマー Slave-1 Slave-2ジしクライアントに返す 12
  13. 13. 例: Anuenue クラスタ五つの Anuenue インスタ Client-1 Client-2ンスからなる Merger: aa aa Master: bb, cc クエリ転送 Slave: dd, ee cc dd インデクスコピー bb ee インデクス作成 Input Data 13
  14. 14. ロールの ロールの割り当て方法anuenue-nodes.xml を編集 • 三つの要素を追加 (mergers, slaves and masters) • 各要素にひとつ以上のインスタンス情報 (ホスト名と ポート番号)を追加 14
  15. 15. 設定例計算機 aa の port 7000 を利用している Solr インスタンスを Merger として登録<mergers> <merger> <host>aa</host> <port>7000</port> </merger></mergers> 15
  16. 16. インデクスのレプリケーション設定インデクスのレプリケーション設定<masters> <master iname=“master1”> <host>aaaa</host> <port>8983</port> </master> Master インスタンスに名前</masters> (iname) を付与<slaves> <slave > <host>bbbb</host> <port>8983</port> <replicate>master1</replicate> </slave> コピーするインデクスを持つ</slaves> Master インスタンスを replicate 要素で追加 16
  17. 17. クラスタ設定例:クラスタ設定 クラスタ<mergers> Client-1 Client-2 <merger> <host>aa</host> <port>8983</port> </merger> aa</mergers><masters> クエリ転送 <master iname=“master1”> <host>bb</host> cc <port>8983</port> </master> インデクスのコ </masters> ピー <slaves> bb <slave> <host>cc</host> インデクス作成 <port>8983</port> <replicate>master1</replicate> </slave> Input Data </slaves> 17
  18. 18. いたクラスタ クラスタ設定Anuenue を用いたクラスタ設定多様なクラスタを作成できるたとえば… 18
  19. 19. 複数のロールを複数のロールを付与 Client1 Client2 Submit queries instance Index input data Input Data 19
  20. 20. 高いQPSに対処するための大規模なクラスタを QPSに対処するための大規模なクラスタを するための大規模作成 Client1 Client2 Client3 … ClientN Merger1 Merger2 Merger3 Slave1 Slave2 Slave3 Slave4 Slave5 Slave6 Master1 Master2 Master3 Master4 Master5 Master6 Input Data 20
  21. 21. Slave グループAnuenue はひとつ以 Client-1 Client-1上のSlave グループを持つことができる Merger各グループは同一のshard インデクスを持 グループ 1 グループ 2つMerger はランダムに Slave1 Slave2 Slave3 Slave4グループ選択,クエリを転送する Master1 Master2 Input Data 21
  22. 22. クラスタをセットアップしたクラスタをセットアップした後 した後クタスタを操作する基本的なコマンドを利用する. Anuenue は以下のコマンドを提供している クラスタの起動 / 終了 インデクスを操作するためのコマンド 22
  23. 23. クラスタの起動・ クラスタの起動・終了クラスタの起動 / 終了は anuenue-distdaemon.sh でおこなう.例: $sh bin/anuenue-distdaemon.sh [start | stop] 23
  24. 24. そのほかのコマンド そのほかのコマンドAnuenue はインデクスを操作する基本的なコマンド(‘post’, ‘delete’, ‘commit’, ‘optimize’ and ‘update’) を提供する例: $sh bin/anuenue-distcommands.sh post -arg inputDir [- target target-node] 24
  25. 25. 本日の本日のトピックAnuenue が提供する機能 検索クラスタのための簡単設定 クラスタに対する分散コマンド最近の進捗と将来 25
  26. 26. SolrCloud基本的なセットアップを Anuenue の設定ファイルで行えるように開発中 http://code.google.com/p/anuenue- wrapper/source/browse/#svn%2Fbranches%2Fbranch- cloud SolrCloud 用のクエリで検索ができることを確認今後の予定(希望) anuenue クラスタにインスタンスを追加,削除を動的に行 えるコマンドを追加 26
  27. 27. 日本語処理現在Senを利用しているが,最新のトークナイザを利用したい Lucene Gosen,Kuromoji など 27
  28. 28. 弊社での利用状況弊社での利用状況 での8/31 mixi ページの検索にめでたく利用されました.導入の際に起こった不具合や要望のあった機能を追加したバージョンをリリース予定 (version 0.3.4) 28
  29. 29. 終わりに(CM) わりに( )Hadoop 上で動作するツールも公開 Likelike (リケリケ) • Locality Sensitive Hashing の壱実装 • 推薦エンジン • URL: http://code.google.com/p/likelike/ Oluolu (オルオル) • クエリログマイニングツール • もしかして検索で利用可能な辞書を抽出 • URL: http://code.google.com/p/oluolu/ 29
  30. 30. ご静聴ありがとうございました. 静聴ありがとうございました. ありがとうございました 30

×