Liberty On Hbase 20091113

6,206 views
6,132 views

Published on

The presentation material: "Adaptable Indexer on Hadoop/HBase" at Hadoop Conference Japan 2009 in Tokyo.

Published in: Technology, News & Politics
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,206
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
146
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Liberty On Hbase 20091113

  1. 1. Hadoop/HBase開発 Adaptable Indexer on Hadoop/HBase HBase上での開発事例と教訓 2009年11月13日 テラニウムテクノロジ株式会社 松岡信也・小宮山康子
  2. 2. Version 11/12 23:00 第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと テラニウムテクノロジ代表;松岡信也;企画・試験 第2部:Hbaseによる開発の実際 テラニウムテクノロジ技術部;小宮山康子;設計・開発 CONFIDENTIAL © 2009 Telanium Technology Incorporated 2
  3. 3. そもそもやりたかったこと  メール検索、および、メールボックスとアルバム・カレンダを 連携させること CONFIDENTIAL © 2009 Telanium Technology Incorporated 3
  4. 4. Liberty – 既存サービスから新たなサービスを ウェブ 住所録 メール 検索 既存サービス Contact List Web Logging Mail Data Location Log Libertyスケーラブルインデクシングサービス(Liberty Scalable Indexing Service) Document Abstraction Service Indexing Sub-System Index Access Subsystem Java / C++ API 新規サービス アクセス グループ 解析 ウェア CONFIDENTIAL © 2009 Telanium Technology Incorporated 4
  5. 5. Liberty – BDB(SleepyCat)を分散配置する  汎用サーバを水平配置すること でスケーラビリティを実現する Mail Box Indexer Extent Liberty Manager Core  Googleのペーパ(*)により 触発 Index Server Index Server Index Server C C C External Document Services [EDS] (Access, Tokenization, Validation) 顧客DB  データベースを使用しない Hash Partitioned Extents (Forward Indexes)  データベースはインデクス作 Index Server Index Server Index Server Index Server C C C C 成目的には重すぎる・高すぎる その他 Search データ Router Range Partitioned Extents (Reverse Indexes)  Liberty:BDBをノード要素とし て分散配置する アプリケーション 検索UI (*)http://research.google.com/archive/googlecluster.html 5
  6. 6. Liberty: Architecture (Backup) Liberty Core Document Liberty Extent Repository Indexers Manager Index Index Index (Access, Tokenization, Validation) Server Server Server C C C Data Abstraction Services Document update triggers Hash Partitioned Extents (Forward Indexes) Index Index Index Index Server Server Server Server C C C C Presentation Search Clients – WebUI, GUI Routers Range Partitioned Extents (Reverse Indexes) Liberty Realm CONFIDENTIAL © 2008 BAS Group 6
  7. 7. Liberty In Action  特徴:DASレイヤにより種々のデータ種別に対応する Web Applications 3rd Party Applications Liberty C++/Java API Liberty Document Abstraction Services/Plugins Liberty Search and Index Routers Liberty Core Liberty Realm PAAS Layer 2006年から2007年にこのアーキテクチャにて開発を実施した  クラウド以前であったためか、話半分がいいところ。全然売れず CONFIDENTIAL © 2009 Telanium Technology Incorporated 7
  8. 8. OSS利用への方向転換  2008年頃から「クラウド」がホットに  商用インフラとして「汎用サーバ」の大規模展開が市民権を得る  OSSの世界では「hadoop」が出現。非RDB大規模データがブームに  2009年にLibertyをOSSで実現することで評価  種々の選択肢(Voldemort、Hbase、Cassandraなどが有力)が乱立状態  Hbaseの使用に決定した  コミュニティ活動がある  サービス付随でない  Hadoopがホット  開発活動活発(2009/Q2) 出典:http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/より抜粋 CONFIDENTIAL © 2009 Telanium Technology Incorporated 8
  9. 9. HBaseを商用システム開発するとき、解決すべき課題 HBaseは、クラウド(AWSなど)を大規模データのインフラとして有効活 用するHadoopプロジェクトと一体不可分であるが…  開発 ;適したアーキテクチャか?開発環境は?ドキュメントは?  品質 ;リリース品質は?十分に焼きこまれているのか?  構築 ;性能・耐障害は宣伝通りなのか?  運用 ;レプリケーション・バックアップなどのデータ運用性  保守 ;オープンソースでの保守主体は?  将来性;コミュニティロードマップへの機能の反映は可能? CONFIDENTIAL © 2009 Telanium Technology Incorporated 10
  10. 10. 第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと テラニウムテクノロジ代表;松岡信也;企画・試験 第2部:Hbaseによる開発の実際 テラニウムテクノロジ技術部;小宮山康子;設計・開発 CONFIDENTIAL © 2009 Telanium Technology Incorporated 11
  11. 11. 第2部 HBaseによる開発の実際  HBase  概要  機能  アーキテクチャ  Liberty システム  HBase の使用上のポイント CONFIDENTIAL © 2009 Telanium Technology Incorporated 12
  12. 12. HBase - 概要  Google BigTable をベースにした column-oriented なDB (http://research.google.com/archive/bigtable-osdi06.pdf)  2008年3月 Hadoop のサブプロジェクトとして 0.1.0 版リリース  2009年10月 0.20.1 版リリース (最新)  Hadoop のバージョンと同期してリリース  0.19から0.20 の間で API 変更があった。  Commiter: 8人  メーリングリスト  一般用 (hbase-user@hadoop.apache.org) 平均流量 : 20通 / 日  開発用 (hbase-dev@hadoop.apache.org)平均流量 : 2通 / 日 CONFIDENTIAL © 2009 Telanium Technology Incorporated 13
  13. 13.  テーブルは 複数の行 HBase の行キーとカラムの関係 で構成されている。 カラムA  各行は、行キーといく つかのカラムからでき 行キー1 セルA1 行キーとカラムが1対1 ている。  データは、行キー・カ カラムA ラム名・タイムスタンプ ム値1 セルが変更履歴を持っている を指定すれば一意に 決まる。 行キー1 セルA1-3  複数のカラムは、カラム ファミリでグループピン カラムA カラム名B グする。 1つの行キーで、  テーブルのカラムをア 1-2 複数のカラムを プリケーションの運用 行キー1 セルA1-3 セルB1-2 持っている 中に追加することがで きる。 カラムファミリ F1 カラムファミリ F2 カラムA カラムB カラムC 複数のカラムがカラム ファミリでグループ化され 行キー1 セルA1-3 セルB1-2 セルC1-4 ている CONFIDENTIAL © 2009 Telanium Technology Incorporated 14
  14. 14. HBase - 機能  HDFS 上に存在するデータセットに対して、リアルタイムでランダ ムな読み書きが可能な仕組みを提供。  HDFS では扱いにくい大量の “小さめ” ファイルに入っているデー タも、HBaseでまとめて管理することができる。  行は行キーによって自動的に昇順ソートされる。  テーブルの大きさが閾値を超えると自動的に分割される 。 CONFIDENTIAL © 2009 Telanium Technology Incorporated 15
  15. 15. HBase - クラスタ Master HBase クラスタ ZooKeeper クラスタ Regionserver Regionserver HBase クラスタ -Master: regionserver の管理 -Regionserver: HBaseクライアン トからのテーブル操作に対応 HDFS -HBase メタデータ保持 HDFS メタデータ テーブル -テーブルデータ 保持 ZooKeepr クラスタ Region -HBase メタデータの設定管理 -ROOT- .META. -HBase クラスタ内のプロセス監視 .logs Region CONFIDENTIAL © 2009 Telanium Technology Incorporated 16
  16. 16. Liberty システムと HBase  今回のアプリの対象ドキュメントの性格: Document Abstraction Service (DAS) サイズはHadoopとしては小規模だが流 入数が多い(毎分数万から10万程度)  データ到着速度以上で ドキュメントのイ ンデクスを作成し、HBase に格納する HBase 検索処理部 インデクス 作成部  一つのドキュメントに対しては、100か所 程度以上のインデクスを張る Cache  インデクス対象のドキュメントサイズは Index data 数KB~100KBのサイズの個別ファイル になっている。格納の効率化を図るため 丸ごと HBase に格納した (行キーはファイル名のハッシュコード)  検索処理部からは到着したドキュメント に対して Hbaseを介してニアリアルタイ ムに検索処理が適宜行われる。 CONFIDENTIAL © 2009 Telanium Technology Incorporated 17
  17. 17. Liberty の HDFS/HBase の活用  HDFS で実現  ファイルの永続性の確保  分散してのファイルの保持  冗長化  HBaseで実現  分散 Key-Value  ドキュメント(ファイル)管理  アプリケーションで実現  アプリケーションロジック  インデクスの持ち方 CONFIDENTIAL © 2009 Telanium Technology Incorporated 18
  18. 18. 開発中にはまった点  テーブルサイズの膨張  インデクステーブルのサイズが大きくなった (今回のアプリではインデクス元のデータサイズの 50倍)  カラムとカラム名が一緒に保存されている  カラム名をつけずカラムファミリ名のみ使用した。  行キーの選択  行キーとして重複が許される値を使ってしまって、新規の行が作 成されずに、既存の行のカラム値が更新された  ユニークだと仮定していたデータが実は重複があることが判明  行キー設計し直し CONFIDENTIAL © 2009 Telanium Technology Incorporated 19
  19. 19. HBase を使う際のポイント  設計時  行キーの設計は慎重に行う。行キーはユニークかつ、想定される検索パタ ーンにおいて効率的に検索できるようにしておく必要がある。  テーブルファイルのサイズを節約するためには、カラム名は短めに設定し ておく  1リージョンで管理できるテーブル数はファイルディスクリプタの上限値に依 存するので、作成するテーブル数の配慮が必要。  開発時  0.20.x で新しく導入された API を使う  運用時  Master は単一障害ポイントなので、 この停止を極力減らすべく信頼性の 高いコンピュータ上で動かすことが重要。  リージョンサーバがクラッシュした場合、コミットログに書かれなかったオペ レーションは失われる。 CONFIDENTIAL © 2009 Telanium Technology Incorporated 20
  20. 20. まとめ  HBase を使ってみて  開発作業のしやすさ: ○  ドキュメント類の充実度: ○  サンプルコードの手に入りやすさ: ○  HBase/アプリケーションのバグ切り分けの容易さ: ○  コミュニティからの情報収集量: ○  インストール/バージョンアップのしやすさ: ○~△  HBase を使ったシステム設計のしやすさ: ○~△  テーブルスキーマ設計の容易さ: ○~△  ミドルウエアとして運用・監視・対障害対策等機能 の充実: △  HBase をDistributed Key-Value Storeとしては?  今後もアプリケーション基盤として使いたい  活発なコミュニティと必要な機能の着実な実現 CONFIDENTIAL © 2009 Telanium Technology Incorporated 21
  21. 21. Q&A  連絡先  松岡 (shinya.matsuoka@telanium.com)  小宮山 (yasuko.komiyama@telanium.com)  www.telanium.com  参考サイト  概要  http://hadoop.apache.org/ Hadoop 本家  http://jimbojw.com/wiki/index.php?title=Understanding_Hbase_and_BigTable 行キーとセルの理解のわかりやすい説明  http://wiki.apache.org/hadoop/HBase/HBasePresentations?action=AttachFile&do=view&target=ApacheCon2009 _Practical_HBase-1.pdf HBase コミッタによる HBase の解説  開発  http://ole-martin.net/hbase-tutorial-for-beginners/ HelloWorld 的HBaseサンプルコード。HBase 0.18用ですが、雰囲気はつかめます  http://old.nabble.com/Re:-Map-Reduce-over-HBase---sample-code-p18253120.html HBase の入出力をMapReduceに組み合わせたサンプルコード。こちらも 0.18用 CONFIDENTIAL © 2009 Telanium Technology Incorporated 22
  22. 22. Thank you CONFIDENTIAL © 2009 Telanium Technology Incorporated 23

×