SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
HBASE IN JAPAN
Overview, Current Status and Future


Lars George
Director EMEA Services
自己紹介

•  Cloudera EMEAのディレクター
    •  全地域におけるHadoopプロジェクトのコンサルタント
•  Apacheのコミッター
    •  HbaseとWhirr
•  O’Reilly 書籍の著者                         
   Hbase -The Definitive Guide
   •  日本語版も販売中!
•  連絡先
    •  lars@cloudera.com
    •  @larsgeorge
                                     日本語版も出ました!	
  
アジェンダ

•  HBaseの紹介
•  プロジェクトの現状
•  クラスタのサイジング
HBASEの紹介
HBaseとは?

•  分散
•  列指向
•  多次元
•  高可用性
•  高パフォーマンス
•  ストレージシステム

           プロジェクトの目的
     数十億の行 * 数百万の列 * 数千のバージョン
  数千のコモディティサーバを通じ、ペタバイトのデータ量を処理
HBaseテーブル
HBaseテーブル
HBase テーブル
HBaseテーブル
HBaseテーブル
HBaseテーブル
HBaseテーブル
HBaseのテーブルとは

•  テーブルは行の辞書順(アルファベット順)でソートされている
•  テーブルスキーマは、列ファミリを定義するのみ
 •  それぞれの列ファミリは、任意の列の数で構成
 •  それぞれの列は、任意の数のバージョンで構成
 •  それぞれの列は、挿入時のみに存在
 •  一つの列ファミリ内の列は、一緒にソート・格納
 •  テーブル名を除くすべてはbyte[]
   (テーブル、行、列ファミリ:列、タイムスタンプ)->値
Java API

•  CRUD
    •  get: 行全体または部分から値を引き出す (R)
    •  put: 行の生成と更新 (CU)
    •  delete: セル、1列、複数列または行の削除 (D)


    Result get(Get get) throws IOException;

    void put(Put put) throws IOException;

    void delete(Delete delete) throws IOException;
Java API (続き)

•  CRUD+SI
    •  scan:      任意の行の数をスキャン (S)
    •  increment: 列の値をインクリメント (I)




ResultScanner getScanner(Scan scan) throws IOException;

Result increment(Increment increment) throws IOException ;
Java API (続き)

•  CRUD+SI+CAS
    •  アトミックのコンペア・アンド・スワップ (CAS)


•  get、check、put操作の組み合わせ
•  完全なトランザクション機能がないことを補う
その他の特徴

•  I/Oを効率よく利用するバッチ操作
•  プッシュダウン式に述部処理するフィルタ
   •  強力なコンパレータを用いた行キーや列名のフィルタ
•  圧縮アルゴリズムの選択
•  ブルームフィルタと時間ベースのストアファイル選択
•  アトミックな追記とputs+deletes
•  マルチオペレーション
•  サーバーサイドのカスタムコードサポート
•  …
プロジェクトの状況
最近のプロジェクトの状況

•  HBase 0.90.x “進化した概念”
    •  マスターの書き直し – Zookeeper を超える
    •  行の中でのスキャニング
    •  アルゴリズムとデータ構造のさらなる最適化
         CDH3
•  HBase 0.92.x “コプロセッサ”
    •  マルチデータセンタレプリケーション
    •  任意のアクセス制御
    •  コプロセッサ
         CDH4
最近のプロジェクトの状況(続)

•  HBase 0.94.x “パフォーマンスリリース”
    •  CRC読み込みの改善
    •  シークの最適化
    •  WAL圧縮
    •  プレフィックス圧縮(別名:ブロックエンコーディング)
    •  アトミックな追記
    •  アトミック put+delete
    •  マルチインクリメントとマルチアペンド
    •  リージョンごとの(つまりローカルの) 複数行トランザクション
    •  WALPlayer

     CDH4.x   (間もなくリリース)
最近のプロジェクトの状況(続)

•  HBase 0.96.x “特異性”
    •  Protobuf RPC
     •  ローリングアップグレード
     •  複数バージョンのアクセス
  •  Metrics V2
  •  プレビュー技術
      •  スナップショット
      •  PrefixTrieブロックエンコーディング



       CDH5 ?
クラスタのサイジング
リソースの競合

 •  読み込み・書き出しで同じ低レベルリソースを
    奪い合う
 •  ディスク (HDFS) とネットワークI/O
 •  RPCハンドラとスレッド
 •  そのほか、完全に別々のコードパスを実行
メモリの共有

 •  デフォルトでは、各リージョンサーバは(与えられ
 る最大量の)メモリを次のように割り当てる
 •  40%をインメモリストア (write ops)
 •  20%をブロックキャッシング (reads ops)
 •  残りの領域(ここでは40%)を、オブジェクトなど一般的な
  Java heapの利用にあてる
 •  メモリの共有には微調整が必要
Reads

 •  リージョンサーバの適切な配置とリクエストの配分
    •  より高速な検索のためのクライアントのキャッシュ情報
    •  クライアントはより高速なルックアップのため情報を
       キャッシュする➜ 高速ウォームアップのための先読みオ
       プションを考慮
 •  可能ならば、時間の範囲指定かブルームフィルタ
    を利用してストアファイルを削除
 •  ブロックキャッシュを試し、もしブロックが見つから
    なければディスクから読み込む
ブロックキャッシュ

 •  ブロックキャッシュの有効性を確認するため、
 出力しているメトリクスを使用
 •  ヒット率と同時に、排除率を満たしているか
  確認 ➜ ランダムリードは理想的ではない
 •  必要に応じて増減させて微調整するが、ヒープ
 の全体的な使用量を監視すること
 •  ブロックキャッシュは絶対に必要
 •  短時間でのメリットがあるので、少なくとも
  10%に設定
書き込み

•  クラスタサイズは、書き込みパフォーマンスによって
 決定されることが多い
•  Log structured merge tree ベース
 •  変更処理をインメモリストアと先行書き込みログ
   (WAL)の両方に格納
 •  負荷が高いとき、一定のしきい値に基づき集約さ
   れたソートマップをフラッシュする
 •  ペンディング状態の変更がないログは破棄
 •  ストアファイルの定期的なコンパクションを実行
書き込みのパフォーマンス

 •  クラスタ全体の書き込みパフォーマンスにある多
    数のファクター
 •  クラスタ全体の書き込みパフォーマンスに影響す
    る様々な要因
 •  キーの分散 ➜ リージョンのホットスポットを回避
 •  ハンドラ ➜ すぐに枯渇しないようにする
 •  先行書き込みログ ➜ 第一のボトルネック
 •  コンパクション ➜ 間違ったチューニングは、増加し続け
  るバックグラウンドノイズの原因に
先行書き込みログ(WAL)

 •  現在のところ、リージョンサーバに1つ
    •  全ストア(列ファミリ)間で共有
    •  ファイル追記の呼び出しで同期
 •  次のようなことを緩和するために実行
 •  WALの負荷軽減のため以下の機能を追加
    •  WAL圧縮
    •  リージョンサーバにつき複数のWAL ➜ ノードごとに複数
       のリージョンサーバを起動する?
先行書き込みログ(WAL)-続き

•  デフォルトのブロックサイズの95%にサイズ設定
   •  64MB または 128MB、configを確認!
•  復旧時間を削減するため、低い数字を保持
   •  リミットは32まで、増加させることは可能
•  ログサイズを大きくするとともにブロッキング前の
   ログの数を増やす(あるいはどちらか)
•  書き込みの分布及びフラッシュの頻度に基づき数
   値を計算
先行書き込みログ(WAL)-続き
•  書き込みは全ストア間で同期させる

 •  1つの列ファミリに巨大なセルがあると、ほかの書き込み
  すべてが停止する
 •  この場合RPCハンドラは、動くか全てブロックされるかの
  二択になる
•  書き込み時にWALを回避することができるが、これは本当
 の耐障害性やレプリケーションを失うことを意味する
 •  依存データセットをリストアするため、コプロセッサを利用
  することも可能かもしれない (preWALRestore)
フラッシュ

 •  すべての変更のための呼び出し(put、deleteな
    ど)は、フラッシュのチェックの原因になる
 •  しきい値に達したら、ディスクへのフラッシュとコン
    パクションのスケジューリングを行う
 •  新たにフラッシュされたファイルは、迅速に圧縮すること
 •  コンパクションは、必要ならリージョンを分割すべ
 き場所に返っていく
コンパクションストーム

 •  ログの数が多すぎる、あるいはメモリ使用量が逼
 迫することにより早過ぎるフラッシュが発生する
 •  ファイルは設定されたフラッシュサイズより小さくなる
 •  バックグラウンドでコンパクションを行い、小さいフ
 ラッシュを大きなストアファイルにマージするのは
 大変
 •  数百MBのリライトを何度も実行
依存関係

 •  たった1つのトリガーがあれば、フラッシュは
    全ストア/列ファミリ間で起こる
 •  フラッシュサイズは、結合されている全スト
    アサイズと比較する
  •  多くの列ファミリはサイズが小さい
  •  例: 55MB + 5MB + 4MB
数値について

 •  一般的なHDFSの書き込みパフォーマンス
  は 35-50MB/秒

       Cell Size	

          OPS	

        0.5MB	

            70-100 	

        100KB	

           350-500	

         10KB	

         3500-5000 ??	

          1KB	

       35000-50000 ????	


 競争こそ、実際に高みに至る道!	
  
もう少し数字を書く

  •   速度が低い現実の状況下では、15MB/秒
  かそれ以下
  •  スレッドによるリソースの奪い合いは、大規模な
   速度低下の原因になる

     Cell Size	

   OPS	

      0.5MB	

       10	

      100KB	

      100	

       10KB	

      800	

        1KB	

      6000
注釈

•  リージョンXのフラッシュサイズに基づき、
   memstoreサイズを計算
•  フィルおよびフラッシュの比率に基づき、保存する
   ログの数を計算
•  最終的に、容量は次で決定される
 •  Java Heap
 •  リージョン数とサイズ
 •  キーの分散
Cheat Sheet #1

 •  先行書き込みログの実行に十分以上の性能があ
    ることを確認
 •  利用できるメムストア領域の許容範囲を超えてク
    ライアントが利用しないことを確認
 •  フラッシュサイズを大きく設定してもいいが、大き
    過ぎないことを確認
 •  先行書き込みログの使用状況を注意して監視
Cheat Sheet #2

 •  1ノードにつき、より多くのデータを格納できるよう
    圧縮を有効にする
 •  いくつかのレベルでバックグラウンドI/Oを固定す
    るため、コンパクションアルゴリズムを変更
 •  別のテーブルに不均一のカラムファミリを置くこと
    を考慮
 •  ブロックキャッシュ、メムストアやすべてのキュー
    のメトリクスを慎重にチェック
例

•  10GBのJava Xmx heap
•  メムストアは40%使う(デフォルト)
    •  10GB Heap x 0.4 = 4GB
•  推奨するフラッシュサイズは128MB
    •  4GB / 128MB = 最大 32 リージョン!
•  WALサイズは 128MB x 0.95%
    •  4GB / (128MB x 0.95) = ~33 部分的にコミットできないログ
      の最大保持量
•  20GBのリージョンサイズ
    •  20GB x 32リージョン = 640GBの生ストレージを使用
Thank     ご清聴いただきまして、	
 You!     まことにありがとうございました	


                                         	
  
        +1 (3) 6228-7930            cloudera.com	
     twi1er.com/	
  
        Sales-jp@cloudera.com	
  
                                                        cloudera

                                                       facebook.com/	
  
                                                         cloudera




41

Mais conteúdo relacionado

Mais procurados

Couchbase server入門
Couchbase server入門Couchbase server入門
Couchbase server入門Yusuke Komatsu
 
20分でわかるHBase
20分でわかるHBase20分でわかるHBase
20分でわかるHBaseSho Shimauchi
 
Windows azureを知ろう ロール&ストレージ編
Windows azureを知ろう ロール&ストレージ編Windows azureを知ろう ロール&ストレージ編
Windows azureを知ろう ロール&ストレージ編Chiho Otonashi
 
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP真吾 吉田
 
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP真吾 吉田
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase ReportSeiichiro Ishida
 
MySQL カジュアル 福岡 03
MySQL カジュアル 福岡 03MySQL カジュアル 福岡 03
MySQL カジュアル 福岡 03Aya Komuro
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集Couchbase Japan KK
 
AmazonのDNSサービス Amazon Route 53の使いかたと裏側
AmazonのDNSサービス Amazon Route 53の使いかたと裏側AmazonのDNSサービス Amazon Route 53の使いかたと裏側
AmazonのDNSサービス Amazon Route 53の使いかたと裏側Yasuhiro Araki, Ph.D
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用Toshihiro Suzuki
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2nekop
 
なぜApache HBaseを選ぶのか? #cwt2013
なぜApache HBaseを選ぶのか? #cwt2013なぜApache HBaseを選ぶのか? #cwt2013
なぜApache HBaseを選ぶのか? #cwt2013Cloudera Japan
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~KLab株式会社
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザKohei MATSUSHITA
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deploymentssmdkk
 
Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)聡 大久保
 

Mais procurados (18)

Couchbase server入門
Couchbase server入門Couchbase server入門
Couchbase server入門
 
20分でわかるHBase
20分でわかるHBase20分でわかるHBase
20分でわかるHBase
 
Windows azureを知ろう ロール&ストレージ編
Windows azureを知ろう ロール&ストレージ編Windows azureを知ろう ロール&ストレージ編
Windows azureを知ろう ロール&ストレージ編
 
20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP20130413 JAWS-UG北陸 美人CDP
20130413 JAWS-UG北陸 美人CDP
 
20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP20130330 JAWS-UG広島 美人CDP
20130330 JAWS-UG広島 美人CDP
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
HBaseCon 2012 参加レポート
HBaseCon 2012 参加レポートHBaseCon 2012 参加レポート
HBaseCon 2012 参加レポート
 
MySQL カジュアル 福岡 03
MySQL カジュアル 福岡 03MySQL カジュアル 福岡 03
MySQL カジュアル 福岡 03
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
 
AmazonのDNSサービス Amazon Route 53の使いかたと裏側
AmazonのDNSサービス Amazon Route 53の使いかたと裏側AmazonのDNSサービス Amazon Route 53の使いかたと裏側
AmazonのDNSサービス Amazon Route 53の使いかたと裏側
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用
 
Couchbase 101 ja
Couchbase 101 jaCouchbase 101 ja
Couchbase 101 ja
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2
 
なぜApache HBaseを選ぶのか? #cwt2013
なぜApache HBaseを選ぶのか? #cwt2013なぜApache HBaseを選ぶのか? #cwt2013
なぜApache HBaseを選ぶのか? #cwt2013
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deployments
 
Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)
 

Destaque

Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersData analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersHirotaka Niisato
 
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Hortonworks
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回都元ダイスケ Miyamoto
 
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理Developers Summit
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Japan
 
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Hortonworks
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)Satoshi Yamada
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理Makoto Yui
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterHadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterBill Graham
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方kwatch
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Yuki Takeichi
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 

Destaque (16)

Database smells
Database smellsDatabase smells
Database smells
 
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersData analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
 
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
 
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterHadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
 
ならば(その弐)
ならば(その弐)ならば(その弐)
ならば(その弐)
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 

Semelhante a Lars George HBase Seminar with O'REILLY Oct.12 2012

クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編Takekazu Omi
 
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用するQlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用するQlikPresalesJapan
 
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DRAmazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR株式会社クライム
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例Amazon Web Services Japan
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2Dell TechCenter Japan
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理Amazon Web Services Japan
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase Japan KK
 
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像AWSのデータベースサービス全体像
AWSのデータベースサービス全体像Amazon Web Services Japan
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
ふりかえり Windows Azure
ふりかえり Windows Azure ふりかえり Windows Azure
ふりかえり Windows Azure Takekazu Omi
 
Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera Japan
 
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)Amazon Web Services Japan
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01Haruhiko KAJIKAWA
 

Semelhante a Lars George HBase Seminar with O'REILLY Oct.12 2012 (20)

クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
 
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用するQlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
Qlik ReplicateでAmazon Kinesis Data Streamsをターゲットとして使用する
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
 
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DRAmazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
Amazon RDS/Azure SQL/Google Cloud SQL 対応DBが多様!異種DBへの移行・連携ならSyniti DR
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611
 
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
ふりかえり Windows Azure
ふりかえり Windows Azure ふりかえり Windows Azure
ふりかえり Windows Azure
 
AWS Blackbelt 2015シリーズ RDS
AWS Blackbelt 2015シリーズ RDSAWS Blackbelt 2015シリーズ RDS
AWS Blackbelt 2015シリーズ RDS
 
Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219
 
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)
 
MySQL at Yahoo! JAPAN #dbts2018
MySQL at Yahoo! JAPAN #dbts2018MySQL at Yahoo! JAPAN #dbts2018
MySQL at Yahoo! JAPAN #dbts2018
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01
 

Mais de Cloudera Japan

Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)Cloudera Japan
 
機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介Cloudera Japan
 
HDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsHDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsCloudera Japan
 
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とは
分散DB Apache KuduのアーキテクチャDBの性能と一貫性を両立させる仕組み「HybridTime」とは分散DB Apache KuduのアーキテクチャDBの性能と一貫性を両立させる仕組み「HybridTime」とは
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とはCloudera Japan
 
Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Cloudera Japan
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Cloudera Japan
 
HBase Across the World #LINE_DM
HBase Across the World #LINE_DMHBase Across the World #LINE_DM
HBase Across the World #LINE_DMCloudera Japan
 
Cloudera のサポートエンジニアリング #supennight
Cloudera のサポートエンジニアリング #supennightCloudera のサポートエンジニアリング #supennight
Cloudera のサポートエンジニアリング #supennightCloudera Japan
 
Train, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelTrain, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelCloudera Japan
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Cloudera Japan
 
Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017Cloudera Japan
 
先行事例から学ぶ IoT / ビッグデータの始め方
先行事例から学ぶ IoT / ビッグデータの始め方先行事例から学ぶ IoT / ビッグデータの始め方
先行事例から学ぶ IoT / ビッグデータの始め方Cloudera Japan
 
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Cloudera Japan
 
How to go into production your machine learning models? #CWT2017
How to go into production your machine learning models? #CWT2017How to go into production your machine learning models? #CWT2017
How to go into production your machine learning models? #CWT2017Cloudera Japan
 
Apache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentechApache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentechCloudera Japan
 
Hue 4.0 / Hue Meetup Tokyo #huejp
Hue 4.0 / Hue Meetup Tokyo #huejpHue 4.0 / Hue Meetup Tokyo #huejp
Hue 4.0 / Hue Meetup Tokyo #huejpCloudera Japan
 
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Cloudera Japan
 
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Japan
 
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016Cloudera Japan
 
Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloudera Japan
 

Mais de Cloudera Japan (20)

Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
 
機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介
 
HDFS Supportaiblity Improvements
HDFS Supportaiblity ImprovementsHDFS Supportaiblity Improvements
HDFS Supportaiblity Improvements
 
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とは
分散DB Apache KuduのアーキテクチャDBの性能と一貫性を両立させる仕組み「HybridTime」とは分散DB Apache KuduのアーキテクチャDBの性能と一貫性を両立させる仕組み「HybridTime」とは
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とは
 
Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
HBase Across the World #LINE_DM
HBase Across the World #LINE_DMHBase Across the World #LINE_DM
HBase Across the World #LINE_DM
 
Cloudera のサポートエンジニアリング #supennight
Cloudera のサポートエンジニアリング #supennightCloudera のサポートエンジニアリング #supennight
Cloudera のサポートエンジニアリング #supennight
 
Train, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelTrain, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning model
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側
 
Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017
 
先行事例から学ぶ IoT / ビッグデータの始め方
先行事例から学ぶ IoT / ビッグデータの始め方先行事例から学ぶ IoT / ビッグデータの始め方
先行事例から学ぶ IoT / ビッグデータの始め方
 
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
 
How to go into production your machine learning models? #CWT2017
How to go into production your machine learning models? #CWT2017How to go into production your machine learning models? #CWT2017
How to go into production your machine learning models? #CWT2017
 
Apache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentechApache Kudu - Updatable Analytical Storage #rakutentech
Apache Kudu - Updatable Analytical Storage #rakutentech
 
Hue 4.0 / Hue Meetup Tokyo #huejp
Hue 4.0 / Hue Meetup Tokyo #huejpHue 4.0 / Hue Meetup Tokyo #huejp
Hue 4.0 / Hue Meetup Tokyo #huejp
 
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
 
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
 
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
 
Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016
 

Lars George HBase Seminar with O'REILLY Oct.12 2012

  • 1. HBASE IN JAPAN Overview, Current Status and Future Lars George Director EMEA Services
  • 2. 自己紹介 •  Cloudera EMEAのディレクター •  全地域におけるHadoopプロジェクトのコンサルタント •  Apacheのコミッター •  HbaseとWhirr •  O’Reilly 書籍の著者                          Hbase -The Definitive Guide •  日本語版も販売中! •  連絡先 •  lars@cloudera.com •  @larsgeorge 日本語版も出ました!  
  • 5. HBaseとは? •  分散 •  列指向 •  多次元 •  高可用性 •  高パフォーマンス •  ストレージシステム プロジェクトの目的 数十億の行 * 数百万の列 * 数千のバージョン 数千のコモディティサーバを通じ、ペタバイトのデータ量を処理
  • 13. HBaseのテーブルとは •  テーブルは行の辞書順(アルファベット順)でソートされている •  テーブルスキーマは、列ファミリを定義するのみ •  それぞれの列ファミリは、任意の列の数で構成 •  それぞれの列は、任意の数のバージョンで構成 •  それぞれの列は、挿入時のみに存在 •  一つの列ファミリ内の列は、一緒にソート・格納 •  テーブル名を除くすべてはbyte[] (テーブル、行、列ファミリ:列、タイムスタンプ)->値
  • 14. Java API •  CRUD •  get: 行全体または部分から値を引き出す (R) •  put: 行の生成と更新 (CU) •  delete: セル、1列、複数列または行の削除 (D) Result get(Get get) throws IOException; void put(Put put) throws IOException; void delete(Delete delete) throws IOException;
  • 15. Java API (続き) •  CRUD+SI •  scan: 任意の行の数をスキャン (S) •  increment: 列の値をインクリメント (I) ResultScanner getScanner(Scan scan) throws IOException; Result increment(Increment increment) throws IOException ;
  • 16. Java API (続き) •  CRUD+SI+CAS •  アトミックのコンペア・アンド・スワップ (CAS) •  get、check、put操作の組み合わせ •  完全なトランザクション機能がないことを補う
  • 17. その他の特徴 •  I/Oを効率よく利用するバッチ操作 •  プッシュダウン式に述部処理するフィルタ •  強力なコンパレータを用いた行キーや列名のフィルタ •  圧縮アルゴリズムの選択 •  ブルームフィルタと時間ベースのストアファイル選択 •  アトミックな追記とputs+deletes •  マルチオペレーション •  サーバーサイドのカスタムコードサポート •  …
  • 19. 最近のプロジェクトの状況 •  HBase 0.90.x “進化した概念” •  マスターの書き直し – Zookeeper を超える •  行の中でのスキャニング •  アルゴリズムとデータ構造のさらなる最適化 CDH3 •  HBase 0.92.x “コプロセッサ” •  マルチデータセンタレプリケーション •  任意のアクセス制御 •  コプロセッサ CDH4
  • 20. 最近のプロジェクトの状況(続) •  HBase 0.94.x “パフォーマンスリリース” •  CRC読み込みの改善 •  シークの最適化 •  WAL圧縮 •  プレフィックス圧縮(別名:ブロックエンコーディング) •  アトミックな追記 •  アトミック put+delete •  マルチインクリメントとマルチアペンド •  リージョンごとの(つまりローカルの) 複数行トランザクション •  WALPlayer CDH4.x (間もなくリリース)
  • 21. 最近のプロジェクトの状況(続) •  HBase 0.96.x “特異性” •  Protobuf RPC •  ローリングアップグレード •  複数バージョンのアクセス •  Metrics V2 •  プレビュー技術 •  スナップショット •  PrefixTrieブロックエンコーディング CDH5 ?
  • 23. リソースの競合 •  読み込み・書き出しで同じ低レベルリソースを 奪い合う •  ディスク (HDFS) とネットワークI/O •  RPCハンドラとスレッド •  そのほか、完全に別々のコードパスを実行
  • 24. メモリの共有 •  デフォルトでは、各リージョンサーバは(与えられ る最大量の)メモリを次のように割り当てる •  40%をインメモリストア (write ops) •  20%をブロックキャッシング (reads ops) •  残りの領域(ここでは40%)を、オブジェクトなど一般的な Java heapの利用にあてる •  メモリの共有には微調整が必要
  • 25. Reads •  リージョンサーバの適切な配置とリクエストの配分 •  より高速な検索のためのクライアントのキャッシュ情報 •  クライアントはより高速なルックアップのため情報を キャッシュする➜ 高速ウォームアップのための先読みオ プションを考慮 •  可能ならば、時間の範囲指定かブルームフィルタ を利用してストアファイルを削除 •  ブロックキャッシュを試し、もしブロックが見つから なければディスクから読み込む
  • 26. ブロックキャッシュ •  ブロックキャッシュの有効性を確認するため、 出力しているメトリクスを使用 •  ヒット率と同時に、排除率を満たしているか 確認 ➜ ランダムリードは理想的ではない •  必要に応じて増減させて微調整するが、ヒープ の全体的な使用量を監視すること •  ブロックキャッシュは絶対に必要 •  短時間でのメリットがあるので、少なくとも 10%に設定
  • 27. 書き込み •  クラスタサイズは、書き込みパフォーマンスによって 決定されることが多い •  Log structured merge tree ベース •  変更処理をインメモリストアと先行書き込みログ (WAL)の両方に格納 •  負荷が高いとき、一定のしきい値に基づき集約さ れたソートマップをフラッシュする •  ペンディング状態の変更がないログは破棄 •  ストアファイルの定期的なコンパクションを実行
  • 28. 書き込みのパフォーマンス •  クラスタ全体の書き込みパフォーマンスにある多 数のファクター •  クラスタ全体の書き込みパフォーマンスに影響す る様々な要因 •  キーの分散 ➜ リージョンのホットスポットを回避 •  ハンドラ ➜ すぐに枯渇しないようにする •  先行書き込みログ ➜ 第一のボトルネック •  コンパクション ➜ 間違ったチューニングは、増加し続け るバックグラウンドノイズの原因に
  • 29. 先行書き込みログ(WAL) •  現在のところ、リージョンサーバに1つ •  全ストア(列ファミリ)間で共有 •  ファイル追記の呼び出しで同期 •  次のようなことを緩和するために実行 •  WALの負荷軽減のため以下の機能を追加 •  WAL圧縮 •  リージョンサーバにつき複数のWAL ➜ ノードごとに複数 のリージョンサーバを起動する?
  • 30. 先行書き込みログ(WAL)-続き •  デフォルトのブロックサイズの95%にサイズ設定 •  64MB または 128MB、configを確認! •  復旧時間を削減するため、低い数字を保持 •  リミットは32まで、増加させることは可能 •  ログサイズを大きくするとともにブロッキング前の ログの数を増やす(あるいはどちらか) •  書き込みの分布及びフラッシュの頻度に基づき数 値を計算
  • 31. 先行書き込みログ(WAL)-続き •  書き込みは全ストア間で同期させる •  1つの列ファミリに巨大なセルがあると、ほかの書き込み すべてが停止する •  この場合RPCハンドラは、動くか全てブロックされるかの 二択になる •  書き込み時にWALを回避することができるが、これは本当 の耐障害性やレプリケーションを失うことを意味する •  依存データセットをリストアするため、コプロセッサを利用 することも可能かもしれない (preWALRestore)
  • 32. フラッシュ •  すべての変更のための呼び出し(put、deleteな ど)は、フラッシュのチェックの原因になる •  しきい値に達したら、ディスクへのフラッシュとコン パクションのスケジューリングを行う •  新たにフラッシュされたファイルは、迅速に圧縮すること •  コンパクションは、必要ならリージョンを分割すべ き場所に返っていく
  • 33. コンパクションストーム •  ログの数が多すぎる、あるいはメモリ使用量が逼 迫することにより早過ぎるフラッシュが発生する •  ファイルは設定されたフラッシュサイズより小さくなる •  バックグラウンドでコンパクションを行い、小さいフ ラッシュを大きなストアファイルにマージするのは 大変 •  数百MBのリライトを何度も実行
  • 34. 依存関係 •  たった1つのトリガーがあれば、フラッシュは 全ストア/列ファミリ間で起こる •  フラッシュサイズは、結合されている全スト アサイズと比較する •  多くの列ファミリはサイズが小さい •  例: 55MB + 5MB + 4MB
  • 35. 数値について •  一般的なHDFSの書き込みパフォーマンス は 35-50MB/秒 Cell Size OPS 0.5MB 70-100 100KB 350-500 10KB 3500-5000 ?? 1KB 35000-50000 ???? 競争こそ、実際に高みに至る道!  
  • 36. もう少し数字を書く •   速度が低い現実の状況下では、15MB/秒 かそれ以下 •  スレッドによるリソースの奪い合いは、大規模な 速度低下の原因になる Cell Size OPS 0.5MB 10 100KB 100 10KB 800 1KB 6000
  • 37. 注釈 •  リージョンXのフラッシュサイズに基づき、 memstoreサイズを計算 •  フィルおよびフラッシュの比率に基づき、保存する ログの数を計算 •  最終的に、容量は次で決定される •  Java Heap •  リージョン数とサイズ •  キーの分散
  • 38. Cheat Sheet #1 •  先行書き込みログの実行に十分以上の性能があ ることを確認 •  利用できるメムストア領域の許容範囲を超えてク ライアントが利用しないことを確認 •  フラッシュサイズを大きく設定してもいいが、大き 過ぎないことを確認 •  先行書き込みログの使用状況を注意して監視
  • 39. Cheat Sheet #2 •  1ノードにつき、より多くのデータを格納できるよう 圧縮を有効にする •  いくつかのレベルでバックグラウンドI/Oを固定す るため、コンパクションアルゴリズムを変更 •  別のテーブルに不均一のカラムファミリを置くこと を考慮 •  ブロックキャッシュ、メムストアやすべてのキュー のメトリクスを慎重にチェック
  • 40. 例 •  10GBのJava Xmx heap •  メムストアは40%使う(デフォルト) •  10GB Heap x 0.4 = 4GB •  推奨するフラッシュサイズは128MB •  4GB / 128MB = 最大 32 リージョン! •  WALサイズは 128MB x 0.95% •  4GB / (128MB x 0.95) = ~33 部分的にコミットできないログ の最大保持量 •  20GBのリージョンサイズ •  20GB x 32リージョン = 640GBの生ストレージを使用
  • 41. Thank ご清聴いただきまして、 You! まことにありがとうございました   +1 (3) 6228-7930 cloudera.com   twi1er.com/   Sales-jp@cloudera.com   cloudera facebook.com/   cloudera 41