本書は、ご好評をいただいた『Hadoop徹底入門』の第2版です。Hadoopは、オープンソースで利用できる分散処理フレームワークで、多数のPCをつなぎ巨大な処理を短時間で可能にするものです。また、システムの一部が壊れたとしても稼動し続けられるなど、高い耐障害性をもつことでも注目されています。第2版では旧版を全面的に見直し、大きく変わったHadoopの最新版に対応しました。
Hadoopのインストールから、Javaによるプログラミング、運用のテクニックまで、実際にHadoopを使ってみようという方向けの情報を充実させています。また、多くの最新トピックも盛り込み、初心者から実際にHadoopを使っている人までご利用いただける内容となっています。
第1部 Hadoopの基礎
1 Hadoopの基礎知識1.1 Hadoop とは
1.2 Hadoop の概要
1.3 Hadoop の適用領域
1.4 Hadoop のシステム構成とアーキテクチャ
1.5 Hadoop の適用事例
2.1 ブログのアクセス数集計
2.2 似ている人を見つける
2.3 検索エンジンインデックスの作成
2.4 画像データの分散処理
2.5 MapReduceで実現できる処理の特徴と活用ポイント
3.1 環境構築の前提
3.2 実行環境の構築
3.3 動作確認
3.4 サンプルアプリケーションの実行
4.1 Hadoopにおけるファイルシステム
4.2 HDFSの仕組み
4.3 HDFSへのファイル読み書きの流れ
4.4 ファイルシステムのメタデータ
4.5 HDFSの設定と起動/停止
4.6 SecondaryNameNode
4.7 CLIベースのファイル操作
5.1 MapReduceの処理
5.2 MapReduceのアーキテクチャ
5.3 MapReduceとHDFSの関係
5.4 MapReduceフレームワークの設定
5.5 MapReduceフレームワークの起動と停止
5.6 CLIベースのMapReduce管理
6.1 本章でテストするアプリケーション
6.2 MapReduceアプリケーション(Java)
6.3 HadoopStreamingアプリケーション
6.4 Pigアプリケーション
6.5 Hiveアプリケーション
7.1 完全分散クラスタ
7.2 環境構築の前提
7.3 Hadoopクラスタ環境の構築
7.4 Webインターフェイスによる動作確認
7.5 サンプルアプリケーションの実行
第2部 MapReduceアプリケーション開発
8 MapReduceプログラミングの基礎 -Javaによる開発(1)-8.1 JavaによるMapReduceの実装
8.2 ソースコードからのプログラム実行
8.3 Mapper
8.4 Reducer
8.5 Writable
8.6 InputFormat/OutputFormat
8.7 mainプログラム
9.1 MapReduceプログラムのカスタマイズ
9.2 入力データの取り扱いを制御する
9.3 出力データの取り扱いを制御する
9.4 独自のデータ型を定義する
9.5 Shuffleフェーズでの動作を制御する
9.6 MapReduceアプリケーションのテストとデバッグ
10.1 本章で紹介する内容
10.2 圧縮データを扱う
10.3 MapReduceでの処理に適したファイルフォーマット
10.4 一度に複数のファイルフォーマットを扱う
10.5 分散キャッシュの利用
10.6 Mapタスク/Reduceタスクの実行コンテキストを扱う
11.1 HadoopStreamingとは
11.2 HadoopStreamingアプリケーションの構築
11.3 HadoopStreamingの活用例
11.4 HadoopStreamingのコマンドオプション
12.1 Pigとは
12.2 Pigの実行方法
12.3 Pigでのデータ管理
12.4 Pigでの処理方法
12.5 関数
12.6 アプリケーション開発
12.7 Pig Latinでの処理実装
12.8 ユーザー定義関数の実装
12.9 Pigにおけるデバッグ
12.10 Pigをより高度に活用するためのポイント
13.1 Hive戦略
13.2 HadoopとHive
13.3 HiveQL
13.4 効果的なHiveの使い方
第3部 Hadoopクラスタの構築と運用
14 環境構築の効率化14.1 環境構築と設定の自動化
14.2 環境構築サーバーのセットアップ
14.3 OSの自動セットアップ
14.4 Puppetによる環境設定
14.5 PSSHを利用した運用
14.6 Hadoop設定のベストプラクティス
15.1 高可用性の基本
15.2 HDFSの高可用化
15.3 MapReduceの高可用化
16.1 Hadoopにおけるモニタリング
16.2 GangliaによるHadoopクラスタのメトリクス取得
16.3 Hadoopクラスタの監視
17.1 Hadoopのメンテナンスとは
17.2 メンテナンス時の基本的なオペレーション
17.3 定常的に実施するオペレーション
17.4 Hadoopクラスタの拡張
17.5 クラスタの障害対応
18.1 リソース制御の導入
18.2 基本的な設定
18.3 スケジューラによるリソース分配の制御
第4部 Hadoopを活用するための技術
19 Hadoopチューニング19.1 チューニングが求められるケース
19.2 MapReduceジョブの動作に影響する設定
19.3 Mapタスクのチューニング
19.4 Reduceタスクのチューニング
19.5 Java VMチューニング
19.6 OSチューニング
20.1 HBaseとは
20.2 HBaseのデータモデル
20.3 アーキテクチャ
20.4 インストール方法
20.5 HBase Shell
20.6 MapReduceジョブからの使用
20.7 HBaseのテーブル設計
21.1 ログコレクタ登場の背景
21.2 Fluentdとは?
21.3 「すべてのログをJSONで」という考え方
21.4 Fluentdのインストール
21.5 Fluentdの基本
21.6 HDFSへの書き出し設定例
21.7 Fluentdの内部構造
21.8 FluentdのHA構成
21.9 Fluentdのチューニング
21.10 Fluentdのモニタリング
21.11 Fluentdと類似したソフトウェア
22.1 YARNの基礎知識
22.2 YARNのアーキテクチャ
22.3 Hadoop/MapReduce/YARNと従来型のHadoop/MapReduceの違い
22.4 YARNを利用してMapReduceを動かす
Kawai Hideki さん
2014-07-16
多数のコンピュータを束ねて大量のデータの集計をとるビッグデータ処理基盤Hadoopの基本的な仕組み(MapReduce)、インストールの仕方、プログラミングの方法、システムとしての監視/メンテナンス、冗長化の方法など、結構微に入り細にわたって記述されている。本書では触れられてませんが、今年5月末に公開されたインメモリ型のビッグデータ処理基盤「Spark 1.0」も気になります。
toiwata さん
2015-03-27
Hadoopの生態系とでもいうべきものの概略を知りたかったので読みました。今回かなり荒い読み方をしているのですが、基本的な仕組みについての記述と運用上の経験を踏まえた記述のいずれも参考になると思いました。