HBase

[cover photo]
TOPICS
Data Science , Database
発行年月日
PRINT LENGTH
584
ISBN
978-4-87311-566-5
原書
HBase: The Definitive Guide
FORMAT
PDF
Ebook
4,620円
Ebookを購入する

ビッグデータのランダムアクセス系処理に欠かせないHBaseについて、基礎から応用までを詳細に解説。クライアントAPI(高度な機能・管理機能)、Hadoopとの結合、アーキテクチャといった開発に関わる事項や、クラスタのモニタリング、パフォーマンスチューニング、管理といった運用の方法を、豊富なサンプルとともに解説します。日本語版ではAWS Elastic MapReduceについての付録を追加。ビッグデータに関心あるすべてのエンジニアに必携の一冊です。

目次

序文
訳者まえがき
はじめに

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

索引