Hadoop徹底入門(濱野 賢一朗 太田 一樹 下垣 徹 山下 真一 猿田 浩輔 藤井 達朗)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Hadoop徹底入門

Hadoop徹底入門

監修





形式:
書籍
発売日:
ISBN:
9784798122335
定価:
4,180(本体3,800円+税10%)
仕様:
B5変・448ページ
シリーズ:
徹底入門
本書籍には新版があります
Hadoop徹底入門 第2版 オープンソース分散処理環境の構築

Googleの技術から生まれたオープンソースフレームワーク

本書はオープンソースの分散処理実行基盤「Hadoop(ハドゥープ)」の解説書です。Hadoopは、Googleなどの巨大サイトで稼動するシステムを再現したオープンソースソフトで、複数のコンピュータを連携させて実行できます。今まで処理することができなかったバイト~ペタバイト級の巨大ファイルも扱えるようになり、商用規模のアクセスログ解析、Web検索の索引作成、POSデータの傾向解析などでの応用が期待されています。また、接続するコンピュータ(ノード)の追加による処理能力の増強や、一部のノードが停止しても縮退運転ができるという特徴を持っています。

本書ではHadoopの導入からシステム構築、JavaによるHadoopアプリケーションの作り方、ノード追加時の省力化、各種の周辺ソフトウェアの連携になどについて詳しく解説します。Hadoopを理解したい初級者の方から、業務への適用を検討している方にも役立てていただけます。


この本で学べること
・- ノード追加による処理能力向上
・- 縮退運用可能アーキテクチャ
・- 巨大アクセスログの解析
・- Web検索のインデックス作成
・- POSデータ分析など、テラ~ベタバイト級の高速バッチ処理を実現ほか

Hadoopと周辺プロダクトを充実解説
・- 分散ファイルシステム:HDFS
・- Javaフレームワーク:MapReduce
・- システム可視化ツール:Ganglia
・- Key-Value型データベース:HBase
・- SQL的処理I/F:Hive

はじめに

1 Hadoop ってなんだろう?

  1.1 Hadoop とは
  1.2 Hadoop の概要
     1.2.1 Hadoopって何?
     1.2.2 用途
     1.2.3 Hadoopの誕生
     1.2.4 大規模なデータ処理における課題と対応
  1.3 Hadoop の適用領域
     1.3.1 万能型のプロダクトではない
     1.3.2 DBMS とHadoopの比較
     1.3.3 RDBMS とHadoopの連携
  1.4 Hadoop の構成と処理概要
     1.4.1 ApacheのHadoopプロジェクト
     1.4.2 サーバー構成
     1.4.3 HDFS:Hadoop分散ファイルシステム
     1.4.4 Hadoop MapReduceフレームワーク
  1.5 Hadoop の適用事例
     1.5.1 Hadoopで変わるシチュエーション
     1.5.2 Hadoopアプリケーションの利用事例

2 Hadoop の導入

  2.1 Hadoop インストールの準備
     2.1.1 Hadoopの動作モード
     2.1.2 利用するHadoopのパッケージ
     2.1.3 インストール前に用意するもの
  2.2 コミュニティ版Hadoop のインストール
     2.2.1 パッケージの入手
     2.2.2 インストール手順
  2.3 コミュニティ版Hadoop の起動と停止
  2.4 MapReduce 実行による動作確認
     2.4.1 サンプルMapReduceアプリケーション
     2.4.2 ローカルモードでの実行
     2.4.3 擬似分散/完全分散モードでの実行
  2.5 Cloudera’s Distribution for Hadoop(CDH)の導入
     2.5.1 Cloudera 社とCDH
     2.5.2 CDH を利用したrpmのインストール
     2.5.3 インストール先の確認
     2.5.4 完全分散モードでのインストール

3 Hadoop 分散ファイルシステムHDFS

  3.1 Hadoop におけるファイルシステム
  3.2 HDFS の仕組み
     3.2.1 HDFS のアーキテクチャ
     3.2.2 HDFS の利点
     3.2.3 ブロックとメタデータ
  3.3 HDFS のオペレーションョン
     3.3.1 ディレクトリ構成と設定ファイル
     3.3.2 ファイル/ディレクトリのパーミッション
     3.3.3 起動と停止
  3.4 ファイル操作
     3.4.1 hdfs コマンド
     3.4.2 dfs サブコマンド
  3.5 ログ管理
     3.5.1 ログの種類
     3.5.2 ログレベルの動的な変更
     3.5.3 状態確認とメンテナンス
  3.6 WebUI による管理
  3.7 ラックアウェアネスの設定方法
     3.7.1 クラスタ構成の認識
     3.7.2 スクリプトを記述する

4 Hadoop MapReduce フレームワーク

  4.1 MapReduce フレームワークの基礎知識
     4.1.1 Map 処理とReduce 処理
     4.1.2 ごく単純なMapreduce
     4.1.3 分散して処理する場合
  4.2 MapReduce フレームワークの構成
     4.2.1 MapReduceとHDFS
     4.2.2 MapReduceの特徴
  4.3 JobTracker の役割
     4.3.1 機能
     4.3.2 3 つの動作モード
     4.3.3 TaskTracker への処理割り当て
     4.3.4 MapReduceジョブ設定の確認
  4.4 TaskTracker の役割
     4.4.1 機能
  4.5 MapReduce フレームワークの連携動作/監視
     4.5.1 JobClient の役割
     4.5.2 死活監視とハートビート通信
     4.5.3 ジョブの優先度設定とスケジューラ
  4.6 MapReduce フレームワークのオペレーション
     4.6.1 分散環境での起動
     4.6.2 最低限必要な設定
     4.6.3 設定ファイルと起動スクリプト
     4.6.4 JobTracker の設定
     4.6.5 ジョブとタスク
     4.6.6 TaskTracker の脱退判断
     4.6.7 TaskTracker の設定
     4.6.8 MapReduceフレームワークの起動と停止
  4.7 コマンドラインベースのMapReduce 管理
     4.7.1 MapReduceジョブの管理
     4.7.2 MapReduce管理者用コマンド
     4.7.3 TaskTracker の追加
  4.8 WebUI による管理
     4.8.1 MapReduceジョブ可視化

5 MapReduce プログラミング入門

  5.1 MapReduce フレームワーク
  5.2 Java によるMapReduce プログラムの作成方法
     5.2.1 MapReduceプログラムで記述する内容
     5.2.2 MapReduceプログラムの入力と出力
     5.2.3 WordCount アプリケーションの作成
  5.3 ワードカウントサンプルアプリケーション
     5.3.1 プログラムの作成/コンパイル/実行
     5.3.2 WordCount.java 解説
  5.4 MapReduce プログラム実行全体の流れ
     5.4.1 InputSplits:入力データの分割単位
     5.4.2 InputFormat:入力データの分割
     5.4.3 Mapper:map 関数の実行
     5.4.4 Partitioner:中間データの行き先を決定
     5.4.5 Reducer:reduce関数の実行
     5.4.6 OuputFormat
  5.5 Hadoop I/O API
     5.5.1 シリアライズAPI(Writable)
     5.5.2 ファイル構造API(SequenceFile)
  5.6 Hadoop MapReduce フレームワークAPI
     5.6.1 設定API(Configuration)
     5.6.2 Mapper/Reducer
     5.6.3 入力フォーマット(InputFormat)
     5.6.4 出力フォーマット(OutputFormat)
     5.6.5 パーティショナー(Partitioner)
     5.6.6 カウンター(Counter)
     5.6.7 副次データの配布(DistributedCache)
  5.7 MapReduce プログラムのテスト/デバッグ手法
     5.7.1 MapReduceの作法に合わせた設計/記述
     5.7.2 MapReduceプログラムのUnit テスト
     5.7.3 MapReduceプログラムの動作環境設定
     5.7.4 MapReduceプログラムのデバッグ技法

6 SQL 的インターフェイスHive

  6.1 Hive 概略
     6.1.1 MapReduceの容易な活用
     6.1.2 Hive とは
  6.2 Hive とHadoop
     6.2.1 Hive とRDBMS の違い
     6.2.2 テーブルの格納方式
     6.2.3 MapReduceとHive
  6.3 HiveQL
     6.3.1 DDL
     6.3.2 データの格納
     6.3.3 SELECT 文
     6.3.4 コマンドライン/シェルからの実行
     6.3.5 EXPLAIN 文
     6.3.6 ユーザー定義関数
  6.4 インストール
     6.4.1 Hive の導入に必要なもの
     6.4.2 インストール手順
     6.4.3 Hive 動作確認
  6.5 Hive の設定
     6.5.1 metastore 管理設定
     6.5.2 データ保持方法
     6.5.3 ログの確認
     6.5.4 Hive でのチューニング

7 環境構築の効率化

  7.1 Hadoop 環境の効率的な構築
     7.1.1 Hadoop環境の自動構築の準備
  7.2 kickstart によるHadoop 環境構築
     7.2.1 PXE ブート
     7.2.2 kickstart
     7.2.3 サーバーの設定と資材の配置
     7.2.4 PXE ブート関連の設定ファイルの配置
     7.2.5 kickstart の設定ファイルの配置
     7.2.6 OS の自動インストール
  7.3 Puppet によるHadoop 環境設定
     7.3.1 Puppet
     7.3.2 マニフェスト
     7.3.3 Puppet マスターのインストール
     7.3.4 Parallel SSH のインストール

8 運用監視とシステムの可視化

  8.1 Hadoop クラスタの運用監視
  8.2 Hadoop で実現できる監視
     8.2.1 Hadoopのログ
     8.2.2 HadoopのWebUI
  8.3 Ganglia によるHadoop 環境の可視化
     8.3.1 Ganglia とは
     8.3.2 Ganglia によるHadoopクラスタの可視化

9 可用性の向上

  9.1 クラスタシステムの可用性
  9.2 スレーブノードの故障による影響
     9.2.1 DataNode の故障
     9.2.2 TaskTracker の故障
  9.3 マスターノードの故障による影響
     9.3.1 NameNode の故障
     9.3.2 JobTracker の故障
  9.4 HA クラスタによるマスターノードの冗長化
     9.4.1 Heartbeat とDRBD によるHA クラスタ
     9.4.2 DRBD のインストール/設定
     9.4.3 Heartbeat のインストール/設定
     9.4.4 HA クラスタの挙動確認
  9.5 HDFS メタデータのチェックポイントとバックアップ
     9.5.1 CheckpointNode
     9.5.2 BackupNode

10 性能向上のためのチューニング

  10.1 Map 処理とReduce 処理に関するチューニング
     10.1.1 アプリケーションのチューニングポイント
  10.2 MapReduce フレームワークのチューニング
     10.2.1 MapReduceジョブの動作に影響するHadoopの設定
     10.2.2 Map 処理でのフレームワークのチューニング
     10.2.3 Reduce 処理でのフレームワークのチューニング
  10.3 その他チューニング
     10.3.1 Java VM チューニング
     10.3.2 OS チューニング

11 Hadoop に関連するプロダクト

  11.1 分散型データベースHBase
     11.1.1 HBase とは?
     11.1.2 データモデル
     11.1.3 アーキテクチャ
     11.1.4 インストール方法
     11.1.5 HBase Shell
     11.1.6 MapReduceジョブからの使用
     11.1.7 HBase のテーブル設計
  11.2 Pig
     11.2.1 Pig とは
     11.2.2 Pig のインストール
     11.2.3 Pig で扱うデータ型
     11.2.4 Pig の処理でできること
     11.2.5 Pig のコマンド操作
     11.2.6 Pig で使用できるUDF
     11.2.7 Pig を使用する場合に確認すること
  11.3 Thrift
     11.3.1 なぜThrift が必要か?
     11.3.2 Thrift のサーバー/クライアント実装手順
     11.3.3 Thrift を用いたHDFS へのアクセス

索引
執筆者プロフィール


 

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2011年08月17日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 012
最終行
2刷
…、QLで処理するような感覚で
…、SQLで処理するような感覚で
2011.04.01
1刷 048
コマンド実行例の2行目
3刷
[hadoop@master hadoop]$ /bin/hadoop.jar hadoop-mapred-0.21.0-examples.jar
[hadoop@master hadoop]$ ./bin/hadoop jar hadoop-mapred-examples-0.21.0.jar
2011.08.17
1刷 049
コマンド実行例の2行目
3刷
[hadoop@localhost hadoop]$ bin/hadoop.jar hadoop-mapred-0.21.0-examples.jar
[hadoop@localhost hadoop]$ ./bin/hadoop jar hadoop-mapred-examples-0.21.0.jar
2011.08.17
1刷 067
12,14,19,21行目
3刷
■マスターノード [root@master] # service hadoop-0.20-namenode start [root@master] # service hadoop-0.20-datanode start ■スレーブノード [root@slave] # service hadoop-0.20-jobtracker start [root@slave] # service hadoop-0.20-tasktracker start 停止は以下のように行います。 ■マスターノード [root@master] # service hadoop-0.20-namenode stop [root@master] # service hadoop-0.20-datanode stop ■スレーブノード [root@slave] # service hadoop-0.20-jobtracker stop [root@slave] # service hadoop-0.20-tasktracker stop
■マスターノード [root@master] # service hadoop-0.20-namenode start [root@master] # service hadoop-0.20-jobtracker start ■スレーブノード [root@slave] # service hadoop-0.20-datanode start [root@slave] # service hadoop-0.20-tasktracker start 停止は以下のように行います。 ■マスターノード [root@master] # service hadoop-0.20-namenode stop [root@master] # service hadoop-0.20-jobtracker stop ■スレーブノード [root@slave] # service hadoop-0.20-datanode stop [root@slave] # service hadoop-0.20-tasktracker stop
2011.03.29
1刷 091
表3.3「パラメータ名」列の6行目と7行目
3刷
dfs.replication.min.pct dfs.safemode.threshold
dfs.replication.min dfs.safemode.threshold.pct
2011.08.17
1刷 110
3行目
2刷
…Datanodeやブロックの情報を…
…Datanodeやブロックの情報
2011.04.01
1刷 143
欄外の註[11]
2刷
…3種類の娶りクスを取得できます。
…3種類のメトリクスを取得できます。
2011.04.01
1刷 150
10行目
2刷
…、複数存在するTaskTrakckerの
…、複数存在するTaskTrackerの
2011.04.01
1刷 209
欄外の[6]
2刷
http://<ネームノードのホスト名>:5007/に…
http://<ネームノードのホスト名>:50070/に…
2011.03.29
1刷 212
コードの7行目
2刷
DELEMITED FIELDS TERMINATED BY ','
DELIMITED FIELDS TERMINATED BY ','
2011.03.29
1刷 246
下から7行目
2刷
/var/www/netinstの直下に配置します。
/var/wwwの直下に配置します。
2011.03.29
1刷 257
15行目
2刷
/var/www/html/ksに配置したファイルです。
/var/www/html/netinstに配置したファイルです。
2011.03.29
1刷 264
コードの下から4行目
2刷
Hadoop{ "hadoop_setting" :
hadoop{ "hadoop_setting" :
2011.03.29
1刷 278
「mapred-site.xml」の下から3行目
2刷
<value>/data/mapred</value>
<value>/data/mapred/local</value>
2011.03.29
1刷 280
7行目
2刷
export HADOOP_HEAPSIZE=512
export HADOOP_HEAPSIZE=1024
2011.03.29
1刷 337
リストの6行目
2刷
<value>master0:50070</value>
<value>master:50070</value>
2011.03.29
1刷 382
16行目
2刷
最後に正しくサービスが起動しているかを確認します。zk0~zk1で…
最後に正しくサービスが起動しているかを確認します。zk0~zk2で…
2011.03.29
1刷 386
12行目
2刷
sampleテーブルのsamplekey0キーを取得すると、
sampleテーブルのrow0キーを取得すると、
2011.03.29

感想・レビュー

mft さん

2020-11-24

10年前ぐらいの本(第2版もその2,3年後に出ているはず)を調べ物の一環という感じで何となく眺めた

hatagi59 さん

2013-10-03

これが一発目のHadoop本で良かった。 HDFSとMapReduceの概要と少し詳しい内容も読みやすく、理解しやすく書かれていた。 可用性の部分でMaster,SlaveNodeの考え方を導入してるんだね。自分が作っているフレームワークも同じ様な考え方を導入していたので特に興味が持てた。 ただ、NoSQLについては、まだ良く分からないな。これは別途他の書籍をあたるかな。

minoguchi さん

2013-06-25

読んだというか眺めた…。