ビッグデータのランダムアクセス系処理に欠かせないHBaseについて、基礎から応用までを詳細に解説。クライアントAPI(高度な機能・管理機能)、Hadoopとの結合、アーキテクチャといった開発に関わる事項や、クラスタのモニタリング、パフォーマンスチューニング、管理といった運用の方法を、豊富なサンプルとともに解説します。日本語版ではAWS Elastic MapReduceについての付録を追加。ビッグデータに関心あるすべてのエンジニアに必携の一冊です。
HBase
Lars George 著、Sky株式会社 玉川 竜司 訳
- TOPICS
- Data Science , Database
- 発行年月日
- 2012年07月
- PRINT LENGTH
- 584
- ISBN
- 978-4-87311-566-5
- 原書
- HBase: The Definitive Guide
- FORMAT
目次
序文 訳者まえがき はじめに 1章 HBaseの紹介 1.1 ビッグデータの夜明け 1.2 リレーショナルデータベースシステムの問題 1.3 非リレーショナルデータベースシステム、Not-Only SQLあるいはNoSQL? 1.3.1 観点 1.3.2 スケーラビリティ 1.3.3 データベースの(非)正規化 1.4 構成要素 1.4.1 背景 1.4.2 テーブル、行、列、セル 1.4.3 自動シャーディング 1.4.4 ストレージAPI 1.4.5 実装 1.4.6 まとめ 1.5 HBase:Hadoopデータベース 1.5.1 歴史 1.5.2 用語 1.5.3 まとめ 2章 インストール 2.1 クイックスタートガイド 2.2 必要な条件 2.2.1 ハードウェア 2.2.2 ソフトウェア 2.3 HBaseのためのファイルシステム 2.3.1 Local 2.3.2 HDFS 2.3.3 S3 2.3.4 その他のファイルシステム 2.4 インストールの選択肢 2.4.1 Apacheのバイナリリリース 2.4.2 ソースからのビルド 2.5 動作モード 2.5.1 スタンドアローンモード 2.5.2 分散モード 2.6 設定 2.6.1 hbase-site.xmlとhbase-default.xml 2.6.2 hbase-env.sh 2.6.3 regionserver 2.6.4 log4j.properties 2.6.5 設定のサンプル 2.6.6 クライアントの設定 2.7 デプロイメント 2.7.1 スクリプトベースの方法 2.7.2 Apache Whirr 2.7.3 PuppetとChef 2.8 クラスタの運用 2.8.1 インストールしたHBaseの実行と動作確認 2.8.2 WebベースUIの紹介 2.8.3 シェルの紹介 2.8.4 クラスタの停止 3章 クライアントAPIの基本 3.1 概要説明 3.2 CRUD操作 3.2.1 putメソッド 3.2.2 Getメソッド 3.2.3 Deleteメソッド 3.3 バッチ操作 3.4 行ロック 3.5 スキャン 3.5.1 スキャンの紹介 3.5.2 ResultScannerクラス 3.5.2 キャッシュ対バッチ 3.6 様々な機能 3.6.1 HTableのユーティリティメソッド 3.6.2 Bytesクラス 4章 クライアントAPI:高度な機能 4.1 フィルタ 4.1.1 フィルタの紹介 4.1.2 比較フィルタ 4.1.3 専用のフィルタ 4.1.4 修飾フィルタ 4.1.5 フィルタリスト 4.1.6 カスタムフィルタ 4.1.7 フィルタのまとめ 4.2 カウンタ 4.2.1 カウンタの紹介 4.2.2 1つのカウンタ 4.2.3 複数のカウンタ 4.3 コプロセッサ 4.3.1 コプロセッサの紹介 4.3.2 Coprocessorインターフェース 4.3.3 コプロセッサのロード 4.3.4 RegionObserverクラス 4.3.5 MasterObserverクラス 4.3.6 エンドポイント 4.4 HTablePool 4.5 接続の処理 5章 クライアントAPI:管理機能 5.1 スキーマ定義 5.1.1 テーブル 5.1.2 テーブルの属性 5.1.3 列ファミリー 5.2 HBaseAdmin 5.2.1 基本的な操作 5.2.2 テーブルの操作 5.2.3 スキーマの操作 5.2.4 クラスタの操作 5.2.5 クラスタの状態に関する情報 6章 利用できるクライアント 6.1 REST、Thrift、Avroの紹介 6.2 インタラクティブなクライアント 6.2.1 ネイティブのJava 6.2.2 REST 6.2.3 Thrift 6.2.4 Avro 6.2.5 その他のクライアント 6.3 バッチクライアント 6.3.1 MapReduce 6.3.2 Hive 6.3.3 Pig 6.3.4 Cascading 6.4 シェル 6.4.1 基本 6.4.2 コマンド 6.4.3 スクリプティング 6.5 WebベースのUI 6.5.1 マスターのUI 6.5.2 リージョンサーバーのUI 6.5.3 共通のページ 7章 MapReduceとの結合 7.1 フレームワーク 7.1.1 MapReduceの紹介 7.1.2 クラス群 7.1.3 サポート用のクラス群 7.1.4 MapReduceのローカリティ 7.1.5 テーブルの分割 7.2 HBaseに対するMapReduce 7.2.1 準備 7.2.2 データシンク 7.2.3 データソース 7.2.4 データソースとシンク 7.2.5 カスタムの処理 8章 アーキテクチャ 8.1 シーク対転送 8.1.1 B+tree 8.1.2 Log-structured merge-tree 8.2 ストレージ 8.2.1 概要 8.2.2 書き込みのパス 8.2.3 ファイル 8.2.4 HFileのフォーマット 8.2.5 KeyValueフォーマット 8.3 ライトアヘッドログ 8.3.1 概要 8.3.2 HLogクラス 8.3.3 HLogKeyクラス 8.3.4 WALEditクラス 8.3.5 LogSyncerクラス 8.3.6 LogRollerクラス 8.3.7 リプレイ 8.3.8 耐障害性 8.4 読み取りパス 8.5 リージョンのルックアップ 8.6 リージョンのライフサイクル 8.7 ZooKeeper 8.8 レプリケーション 8.8.1 Logのeditsの生涯 8.8.2 内部 9章 高度な利用 9.1 キーの設計 9.1.1 概念 9.1.2 tall-narrowテーブルと、flat-wideテーブル 9.1.3 パーシャルキースキャン 9.1.4 ページネーション 9.1.5 時系列のデータ 9.1.6 時系列のリレーション 9.2 高度なスキーマ 9.3 セカンダリインデックス 9.4 検索機能の組み込み 9.5 トランザクション 9.6 ブルームフィルタ 9.7 バージョニング 9.7.1 暗黙のバージョニング 9.7.2 カスタムのバージョニング 10章 クラスタのモニタリング 10.1 イントロダクション 10.2 メトリクスフレームワーク 10.2.1 コンテキスト、レコード、メトリクス 10.2.2 マスターのメトリクス 10.2.3 リージョンサーバーのメトリクス 10.2.4 RPCのメトリクス 10.2.5 JVMのメトリクス 10.2.6 Infoメトリクス 10.3 Ganglia 10.3.1 インストール 10.3.2 使用方法 10.4 JMX 10.4.1 JConsole 10.4.2 JMX Remote API 10.5 Nagios 11章 パフォーマンスチューニング 11.1 ガベージコレクションのチューニング 11.2 メモリストアのローカル割り当てバッファ 11.3 圧縮 11.3.1 利用可能なコーデック 11.3.2 インストールの検証 11.3.3 圧縮の有効化 11.4 分割とコンパクションの最適化 11.4.1 分割の管理 11.4.2 リージョンへの負荷の集中 11.4.3 リージョンの事前分割 11.5 ロードバランシング 11.6 リージョンのマージ 11.7 クライアントAPIのベストプラクティス 11.8 設定 11.9 負荷テスト 11.9.1 パフォーマンスの評価 11.9.2 YCSB 12章 クラスタの管理 12.1 運用のタスク 12.1.1 ノードの削除 12.1.2 ローリングでの再起動 12.1.3 サーバーの追加 12.2 データに関するタスク 12.2.1 インポート及びエクスポートのツール 12.2.2 CopyTableツール 12.2.3 バルクインポート 12.2.4 レプリケーション 12.3 その他のタスク 12.3.1 クラスタの共存 12.3.2 必要なポート 12.4 ログレベルの変更 12.5 トラブルシューティング 12.5.1 HBase Fsck 12.5.2 ログの解析 12.5.3 一般的な問題 付録A HBaseの設定プロパティ 付録B ロードマップ HBase 0.92.0 HBase 0.94.0 付録C 以前のリリースからのアップグレード HBase 0.90.xへのアップグレード 0.20.xもしくは0.89.xからのアップグレード 0.90.x内でのアップグレード HBase 0.92.0へのアップグレード 付録D ディストリビューション Cloudera's Distribution Including Apache Hadoop 付録E HushのSQLスキーマ 付録F HBase対Bigtable 付録G AWS Elastic MapReduce上でのHBase 索引