SlideShare a Scribd company logo
1 of 22
Download to read offline
Hadoop/HBase開発
Adaptable Indexer on Hadoop/HBase
HBase上での開発事例と教訓


2009年11月13日
テラニウムテクノロジ株式会社
 松岡信也・小宮山康子
Version 11/12 23:00

       第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと
        テラニウムテクノロジ代表;松岡信也;企画・試験


       第2部:Hbaseによる開発の実際
        テラニウムテクノロジ技術部;小宮山康子;設計・開発




CONFIDENTIAL © 2009 Telanium Technology Incorporated   2
そもそもやりたかったこと
         メール検索、および、メールボックスとアルバム・カレンダを
          連携させること




CONFIDENTIAL © 2009 Telanium Technology Incorporated   3
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
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
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
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
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
HBaseを商用システム開発するとき、解決すべき課題

HBaseは、クラウド(AWSなど)を大規模データのインフラとして有効活
  用するHadoopプロジェクトと一体不可分であるが…



    開発 ;適したアーキテクチャか?開発環境は?ドキュメントは?
    品質 ;リリース品質は?十分に焼きこまれているのか?
    構築 ;性能・耐障害は宣伝通りなのか?
    運用 ;レプリケーション・バックアップなどのデータ運用性
    保守 ;オープンソースでの保守主体は?
    将来性;コミュニティロードマップへの機能の反映は可能?



CONFIDENTIAL © 2009 Telanium Technology Incorporated   10
第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと
        テラニウムテクノロジ代表;松岡信也;企画・試験


       第2部:Hbaseによる開発の実際
        テラニウムテクノロジ技術部;小宮山康子;設計・開発




CONFIDENTIAL © 2009 Telanium Technology Incorporated   11
第2部 HBaseによる開発の実際



           HBase
              概要
              機能
              アーキテクチャ
           Liberty システム
              HBase の使用上のポイント




CONFIDENTIAL © 2009 Telanium Technology Incorporated   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
   テーブルは 複数の行
       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
HBase - 機能
      HDFS 上に存在するデータセットに対して、リアルタイムでランダ
       ムな読み書きが可能な仕組みを提供。
      HDFS では扱いにくい大量の “小さめ” ファイルに入っているデー
       タも、HBaseでまとめて管理することができる。

      行は行キーによって自動的に昇順ソートされる。
      テーブルの大きさが閾値を超えると自動的に分割される 。




CONFIDENTIAL © 2009 Telanium Technology Incorporated   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
Liberty システムと HBase
    今回のアプリの対象ドキュメントの性格:                                 Document Abstraction Service (DAS)
     サイズはHadoopとしては小規模だが流
     入数が多い(毎分数万から10万程度)
    データ到着速度以上で ドキュメントのイ
     ンデクスを作成し、HBase に格納する                                           HBase




                                                                                         検索処理部
                                                       インデクス
                                                        作成部
    一つのドキュメントに対しては、100か所
     程度以上のインデクスを張る
                                                                            Cache
    インデクス対象のドキュメントサイズは                                          Index
                                                                             data
     数KB~100KBのサイズの個別ファイル
     になっている。格納の効率化を図るため
     丸ごと HBase に格納した
     (行キーはファイル名のハッシュコード)
    検索処理部からは到着したドキュメント
     に対して Hbaseを介してニアリアルタイ
     ムに検索処理が適宜行われる。


CONFIDENTIAL © 2009 Telanium Technology Incorporated                                             17
Liberty の HDFS/HBase の活用
           HDFS で実現
              ファイルの永続性の確保
              分散してのファイルの保持
              冗長化
           HBaseで実現
              分散 Key-Value
              ドキュメント(ファイル)管理
           アプリケーションで実現
              アプリケーションロジック
              インデクスの持ち方




CONFIDENTIAL © 2009 Telanium Technology Incorporated   18
開発中にはまった点

      テーブルサイズの膨張
        インデクステーブルのサイズが大きくなった
         (今回のアプリではインデクス元のデータサイズの 50倍)
        カラムとカラム名が一緒に保存されている
        カラム名をつけずカラムファミリ名のみ使用した。


      行キーの選択
        行キーとして重複が許される値を使ってしまって、新規の行が作
         成されずに、既存の行のカラム値が更新された
        ユニークだと仮定していたデータが実は重複があることが判明
        行キー設計し直し

CONFIDENTIAL © 2009 Telanium Technology Incorporated   19
HBase を使う際のポイント
     設計時
       行キーの設計は慎重に行う。行キーはユニークかつ、想定される検索パタ
        ーンにおいて効率的に検索できるようにしておく必要がある。
       テーブルファイルのサイズを節約するためには、カラム名は短めに設定し
        ておく
       1リージョンで管理できるテーブル数はファイルディスクリプタの上限値に依
        存するので、作成するテーブル数の配慮が必要。
     開発時
       0.20.x で新しく導入された API を使う
     運用時
       Master は単一障害ポイントなので、 この停止を極力減らすべく信頼性の
        高いコンピュータ上で動かすことが重要。
       リージョンサーバがクラッシュした場合、コミットログに書かれなかったオペ
        レーションは失われる。



CONFIDENTIAL © 2009 Telanium Technology Incorporated   20
まとめ
           HBase を使ってみて
                 開発作業のしやすさ: ○
                        ドキュメント類の充実度: ○
                        サンプルコードの手に入りやすさ: ○
                        HBase/アプリケーションのバグ切り分けの容易さ: ○
                        コミュニティからの情報収集量: ○
                        インストール/バージョンアップのしやすさ: ○~△
                 HBase を使ったシステム設計のしやすさ: ○~△
                        テーブルスキーマ設計の容易さ: ○~△
                        ミドルウエアとして運用・監視・対障害対策等機能 の充実: △


           HBase をDistributed Key-Value Storeとしては?
              今後もアプリケーション基盤として使いたい
                        活発なコミュニティと必要な機能の着実な実現

CONFIDENTIAL © 2009 Telanium Technology Incorporated      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
Thank you




CONFIDENTIAL © 2009 Telanium Technology Incorporated         23

More Related Content

Viewers also liked

Room4 TELWFD Andrew Haldane Tel Wfl Presentation
Room4   TELWFD   Andrew Haldane   Tel Wfl PresentationRoom4   TELWFD   Andrew Haldane   Tel Wfl Presentation
Room4 TELWFD Andrew Haldane Tel Wfl Presentation
JISC SSBR
 
The cells Daniela e Giulia
The cells Daniela e GiuliaThe cells Daniela e Giulia
The cells Daniela e Giulia
guest02450c
 
93 Playful City USA 2009 Communities
93 Playful City USA 2009 Communities93 Playful City USA 2009 Communities
93 Playful City USA 2009 Communities
KaBOOM!
 
Isothermal Diagnostics
Isothermal DiagnosticsIsothermal Diagnostics
Isothermal Diagnostics
guykiddle
 
Goldmedia Radio 2020 TLM
Goldmedia Radio 2020 TLMGoldmedia Radio 2020 TLM
Goldmedia Radio 2020 TLM
Goldmedia Group
 
ALA Anaheim 2012
ALA Anaheim 2012ALA Anaheim 2012
ALA Anaheim 2012
Lacey Klemm
 
Logisticke Centrum
Logisticke CentrumLogisticke Centrum
Logisticke Centrum
guest91666e
 
Texas STaR Chart Presentation
Texas STaR Chart PresentationTexas STaR Chart Presentation
Texas STaR Chart Presentation
rzinsmeyer
 

Viewers also liked (20)

Room4 TELWFD Andrew Haldane Tel Wfl Presentation
Room4   TELWFD   Andrew Haldane   Tel Wfl PresentationRoom4   TELWFD   Andrew Haldane   Tel Wfl Presentation
Room4 TELWFD Andrew Haldane Tel Wfl Presentation
 
The cells Daniela e Giulia
The cells Daniela e GiuliaThe cells Daniela e Giulia
The cells Daniela e Giulia
 
93 Playful City USA 2009 Communities
93 Playful City USA 2009 Communities93 Playful City USA 2009 Communities
93 Playful City USA 2009 Communities
 
Isothermal Diagnostics
Isothermal DiagnosticsIsothermal Diagnostics
Isothermal Diagnostics
 
Servicesoverviewsmallerversion
ServicesoverviewsmallerversionServicesoverviewsmallerversion
Servicesoverviewsmallerversion
 
G V L Berkeley Johns Hopkins University Fini
G V L  Berkeley  Johns  Hopkins  University  FiniG V L  Berkeley  Johns  Hopkins  University  Fini
G V L Berkeley Johns Hopkins University Fini
 
Goldmedia Radio 2020 TLM
Goldmedia Radio 2020 TLMGoldmedia Radio 2020 TLM
Goldmedia Radio 2020 TLM
 
Does your brand need a mobile strategy? (Digiday Brand Summit 2012)
Does your brand need a mobile strategy? (Digiday Brand Summit 2012)Does your brand need a mobile strategy? (Digiday Brand Summit 2012)
Does your brand need a mobile strategy? (Digiday Brand Summit 2012)
 
Grand Lake OK 2005 - 2010 First Half of Year Real Estate Market Analysis
Grand Lake OK 2005 - 2010 First Half of Year Real Estate Market AnalysisGrand Lake OK 2005 - 2010 First Half of Year Real Estate Market Analysis
Grand Lake OK 2005 - 2010 First Half of Year Real Estate Market Analysis
 
Computer Capacity & Performance Evaluation Sheets
Computer Capacity & Performance Evaluation SheetsComputer Capacity & Performance Evaluation Sheets
Computer Capacity & Performance Evaluation Sheets
 
Social media monitoring crisis management tno nifv congres 2012
Social media monitoring crisis management tno nifv congres 2012Social media monitoring crisis management tno nifv congres 2012
Social media monitoring crisis management tno nifv congres 2012
 
Osobni PR
Osobni PROsobni PR
Osobni PR
 
History of meaning
History of meaningHistory of meaning
History of meaning
 
JenH2k
JenH2kJenH2k
JenH2k
 
ALA Anaheim 2012
ALA Anaheim 2012ALA Anaheim 2012
ALA Anaheim 2012
 
Keynote Presentation from the 2013 Mobile Marketing Strategies Summit
Keynote Presentation from the 2013 Mobile Marketing Strategies SummitKeynote Presentation from the 2013 Mobile Marketing Strategies Summit
Keynote Presentation from the 2013 Mobile Marketing Strategies Summit
 
Logisticke Centrum
Logisticke CentrumLogisticke Centrum
Logisticke Centrum
 
Unlocking the Power of Purpose by The EVR1 Institute
Unlocking the Power of Purpose by The EVR1 InstituteUnlocking the Power of Purpose by The EVR1 Institute
Unlocking the Power of Purpose by The EVR1 Institute
 
數位行銷應用分析 蘇貞昌 台北超越台北
數位行銷應用分析   蘇貞昌 台北超越台北數位行銷應用分析   蘇貞昌 台北超越台北
數位行銷應用分析 蘇貞昌 台北超越台北
 
Texas STaR Chart Presentation
Texas STaR Chart PresentationTexas STaR Chart Presentation
Texas STaR Chart Presentation
 

Similar to Liberty On Hbase 20091113

Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
Masayuki Ozawa
 
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Masayuki Ozawa
 
Denali ctp3 always on availability groups 概要
Denali ctp3 always on  availability groups 概要Denali ctp3 always on  availability groups 概要
Denali ctp3 always on availability groups 概要
Masayuki Ozawa
 
19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」
Developers Summit
 
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
江藤 武司
 

Similar to Liberty On Hbase 20091113 (20)

JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料JAWS熊本で使用したSWX社内用AWS初心者向け資料
JAWS熊本で使用したSWX社内用AWS初心者向け資料
 
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
JAWSUG熊本で開催されたハンズオンにて発表したAWS初心者向け資料
 
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版)
 
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
 
エンタープライズにおけるAWS利用事例_2012年11月
エンタープライズにおけるAWS利用事例_2012年11月エンタープライズにおけるAWS利用事例_2012年11月
エンタープライズにおけるAWS利用事例_2012年11月
 
20110406aws accenture
20110406aws accenture20110406aws accenture
20110406aws accenture
 
Heroshima "Cloud & Security Day" and Night
Heroshima "Cloud & Security Day" and NightHeroshima "Cloud & Security Day" and Night
Heroshima "Cloud & Security Day" and Night
 
JAWS-UG鹿児島 初心者向け簡単講座
JAWS-UG鹿児島 初心者向け簡単講座JAWS-UG鹿児島 初心者向け簡単講座
JAWS-UG鹿児島 初心者向け簡単講座
 
いよいよ SAP Business Suite 正式サポート! SAP on AWS
いよいよ SAP Business Suite 正式サポート!  SAP on AWSいよいよ SAP Business Suite 正式サポート!  SAP on AWS
いよいよ SAP Business Suite 正式サポート! SAP on AWS
 
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
できる!グローバル×スケーラブル×マルチデバイス対応のソーシャルアプリ開発入門
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座
 
aws seminer_so-net_public
aws seminer_so-net_publicaws seminer_so-net_public
aws seminer_so-net_public
 
So net
So netSo net
So net
 
Denali ctp3 always on availability groups 概要
Denali ctp3 always on  availability groups 概要Denali ctp3 always on  availability groups 概要
Denali ctp3 always on availability groups 概要
 
19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」19-D-2_業務システム特化型RIA「Nexaweb」
19-D-2_業務システム特化型RIA「Nexaweb」
 
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
 
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
 
Windows Azure 基盤を支えるテクノロジー
Windows Azure 基盤を支えるテクノロジーWindows Azure 基盤を支えるテクノロジー
Windows Azure 基盤を支えるテクノロジー
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
 

Recently uploaded

Recently uploaded (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Liberty On Hbase 20091113

  • 1. Hadoop/HBase開発 Adaptable Indexer on Hadoop/HBase HBase上での開発事例と教訓 2009年11月13日 テラニウムテクノロジ株式会社 松岡信也・小宮山康子
  • 2. Version 11/12 23:00 第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと テラニウムテクノロジ代表;松岡信也;企画・試験 第2部:Hbaseによる開発の実際 テラニウムテクノロジ技術部;小宮山康子;設計・開発 CONFIDENTIAL © 2009 Telanium Technology Incorporated 2
  • 3. そもそもやりたかったこと  メール検索、および、メールボックスとアルバム・カレンダを 連携させること CONFIDENTIAL © 2009 Telanium Technology Incorporated 3
  • 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. 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. 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. 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. 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. HBaseを商用システム開発するとき、解決すべき課題 HBaseは、クラウド(AWSなど)を大規模データのインフラとして有効活 用するHadoopプロジェクトと一体不可分であるが…  開発 ;適したアーキテクチャか?開発環境は?ドキュメントは?  品質 ;リリース品質は?十分に焼きこまれているのか?  構築 ;性能・耐障害は宣伝通りなのか?  運用 ;レプリケーション・バックアップなどのデータ運用性  保守 ;オープンソースでの保守主体は?  将来性;コミュニティロードマップへの機能の反映は可能? CONFIDENTIAL © 2009 Telanium Technology Incorporated 10
  • 10. 第1部:Hbaseに出会うまでの経緯。インデクサでやりたいこと テラニウムテクノロジ代表;松岡信也;企画・試験 第2部:Hbaseによる開発の実際 テラニウムテクノロジ技術部;小宮山康子;設計・開発 CONFIDENTIAL © 2009 Telanium Technology Incorporated 11
  • 11. 第2部 HBaseによる開発の実際  HBase  概要  機能  アーキテクチャ  Liberty システム  HBase の使用上のポイント CONFIDENTIAL © 2009 Telanium Technology Incorporated 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. テーブルは 複数の行 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. HBase - 機能  HDFS 上に存在するデータセットに対して、リアルタイムでランダ ムな読み書きが可能な仕組みを提供。  HDFS では扱いにくい大量の “小さめ” ファイルに入っているデー タも、HBaseでまとめて管理することができる。  行は行キーによって自動的に昇順ソートされる。  テーブルの大きさが閾値を超えると自動的に分割される 。 CONFIDENTIAL © 2009 Telanium Technology Incorporated 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. 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. Liberty の HDFS/HBase の活用  HDFS で実現  ファイルの永続性の確保  分散してのファイルの保持  冗長化  HBaseで実現  分散 Key-Value  ドキュメント(ファイル)管理  アプリケーションで実現  アプリケーションロジック  インデクスの持ち方 CONFIDENTIAL © 2009 Telanium Technology Incorporated 18
  • 18. 開発中にはまった点  テーブルサイズの膨張  インデクステーブルのサイズが大きくなった (今回のアプリではインデクス元のデータサイズの 50倍)  カラムとカラム名が一緒に保存されている  カラム名をつけずカラムファミリ名のみ使用した。  行キーの選択  行キーとして重複が許される値を使ってしまって、新規の行が作 成されずに、既存の行のカラム値が更新された  ユニークだと仮定していたデータが実は重複があることが判明  行キー設計し直し CONFIDENTIAL © 2009 Telanium Technology Incorporated 19
  • 19. HBase を使う際のポイント  設計時  行キーの設計は慎重に行う。行キーはユニークかつ、想定される検索パタ ーンにおいて効率的に検索できるようにしておく必要がある。  テーブルファイルのサイズを節約するためには、カラム名は短めに設定し ておく  1リージョンで管理できるテーブル数はファイルディスクリプタの上限値に依 存するので、作成するテーブル数の配慮が必要。  開発時  0.20.x で新しく導入された API を使う  運用時  Master は単一障害ポイントなので、 この停止を極力減らすべく信頼性の 高いコンピュータ上で動かすことが重要。  リージョンサーバがクラッシュした場合、コミットログに書かれなかったオペ レーションは失われる。 CONFIDENTIAL © 2009 Telanium Technology Incorporated 20
  • 20. まとめ  HBase を使ってみて  開発作業のしやすさ: ○  ドキュメント類の充実度: ○  サンプルコードの手に入りやすさ: ○  HBase/アプリケーションのバグ切り分けの容易さ: ○  コミュニティからの情報収集量: ○  インストール/バージョンアップのしやすさ: ○~△  HBase を使ったシステム設計のしやすさ: ○~△  テーブルスキーマ設計の容易さ: ○~△  ミドルウエアとして運用・監視・対障害対策等機能 の充実: △  HBase をDistributed Key-Value Storeとしては?  今後もアプリケーション基盤として使いたい  活発なコミュニティと必要な機能の着実な実現 CONFIDENTIAL © 2009 Telanium Technology Incorporated 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. Thank you CONFIDENTIAL © 2009 Telanium Technology Incorporated 23