ISBN 9784873117348
初めてのSpark
- 出版社
- オライリー・ジャパン
- 刊行
- 2015-08
Amazonアソシエイトおよび楽天アフィリエイト等の広告リンクを含みます。Amazonのアソシエイトとして tech-book.net は適格販売により収入を得ています。
詳細
概要
Apache Spark の基礎から分散クラスタ運用まで体系的に習得する
想定読者
Hadoop/MapReduce を経験済みで Spark へ移行を検討しているデータエンジニア、またはビッグデータ処理基盤の構築・運用を担うバックエンドエンジニア
こんな人には向いていない
- Spark や分散処理の概念を全く知らない状態からの完全初学者には、前提となる Java/Python/Scala の基礎知識が必要なため別途補完が求められる
- DataFrame API や Spark 2.x 以降の Structured Streaming を主軸に学びたい読者には、本書は RDD 中心の旧 API 解説が多く内容が古い
- MLlib や Spark SQL を実務レベルで深堀りしたい場合、本書の該当章はハンズオン事例が少なく専門書を別途参照する必要がある
読了後にできるようになること
- RDD(耐障害性分散データセット)の変換とアクションを使い、遅延評価とパーティション設計を意識した分散処理プログラムを書ける
- キー/値ペア操作を通じ、集計・結合・シャッフルのコストを把握してジョブを最適化できる
- HDFS・S3 等の外部ストレージとの入出力ルートを理解し、実データを読み込んで処理を完結させられる
- Spark SQL でデータフレーム操作とクエリを組み合わせ、構造化データを効率的に扱える
- Spark Streaming の基本ウィンドウ処理と状態管理を実装し、リアルタイムデータパイプラインを構築できる
- MLlib の分類・回帰アルゴリズムを用いた機械学習パイプラインを Spark 上で動かせる
本書のキー概念(章解説)
- 第 1 章 Spark によるデータ分析への招待 — Spark の設計思想と Hadoop との差異を掴む導入章。既存の MapReduce 経験者は概念整理として軽く流せる
- 第 2 章 Spark のダウンロードと起動 — ローカル環境の構築手順。環境済みの読者は飛ばしてよい
- 第 3 章 RDD を使ったプログラミング — 本書の核心。変換・アクション・遅延評価の仕組みを理解する最重要章
- 第 4 章 キー/値ペアの処理 — シャッフルコストの感覚をつかむために実際にコードを動かしながら読むと効果的
- 第 5 章 データのロードとセーブ — HDFS・S3・テキスト・Sequence ファイル等の入出力パターンを網羅
- 第 6 章 Spark の高度なプログラミング — ブロードキャスト変数・アキュムレータ・カスタム Partitioner を扱う。実務でパフォーマンス問題に直面したら戻ってくる章
- 第 7 章 クラスタでの動作 — 本番運用を見据えるなら 3 章の次に読む価値がある。Standalone/YARN/Mesos のリソース管理と実行モデルを解説
- 第 8 章 Spark のチューニングとデバッグ — GC・シリアライゼーション・UI の見方を一通り説明。パフォーマンス改善のリファレンスとして手元に置きたい章
- 第 9 章 Spark SQL — DataFrame が普及した現在も、Catalyst オプティマイザの基本を押さえる章として参照価値がある
- 第 10 章 Spark Streaming — DStream モデルの解説。Structured Streaming との差異を把握するための対比読書として活用できる
- 第 11 章 MLlib を使った機械学習 — 分類・回帰・クラスタリングの基礎を Spark 上で動かす概要章。深堀りには別途 MLlib 専門書が必要
ハイライト
- 少し古い本であり、当時 Dataframe という概念がなかった頃のものですが、国内有識者による大変良質な加筆が加えられており、おすすめです。(実務で Spark を使う技術者が本書の位置づけを端的に表現した箇所。翻訳品質と監訳者の貢献を評価する声として代表的)
- 次世代のビッグデータ処理のプラットフォームとして注目される Apache Spark の総合解説書。Spark を初めて使う人から、クラスタ上で本格的な利用をする人までを一通り対象とした総合書籍であり、ビッグデータや機械学習に携わる開発者に広くアピールします(入門から本番クラスタ運用まで一冊でカバーする本書の設計思想が端的に示されている)
外部からの言及
- Azure Databricks 等の実務環境で Spark を使う技術者が「翻訳品質と監訳者の加筆が優秀」と評価しており、API の古さを認めつつも入門段階の概念習得には推奨している(qiita)
- 一方で、HadoopFile 系 API など使い方の詳細説明が薄い箇所があるという指摘もあり、実装詳細を追う場合は公式ドキュメントや他リソースの併用が推奨されている(qiita)
- ブロードキャスト変数・MLlib アルゴリズム比較など、特定トピックの調査起点として複数の技術記事が参考文献に挙げており、リファレンス的な使われ方をしている(qiita)
編集メモ
Qiita 言及 6 件 / 確認済み likes 合計 357 / 出版 2015 年だが 2024 年にも参考書リストへの掲載が確認されており、長期参照実績あり。RDD 中心の内容が現行 API と乖離している点から essential には届かない
読む前に押さえておきたいこと
- Python・Scala・Java のいずれかで基本的なプログラムを書いた経験
- HDFS や S3 などの分散ファイルシステムの基本概念
- Linux コマンドラインでの操作とプロセス・メモリの基礎知識
学習のコツ
- 3 章(RDD プログラミング)と 7 章(クラスタ動作)を優先して読み、残りの章はユースケースに応じて参照する使い方が効率的。Spark SQL を主目的とするなら 9 章を早めに読む
- 本書は RDD API を中心に解説されているため、現行の DataFrame/Dataset API との対応を公式ドキュメントと照合しながら読むと理解が深まる
- 6 章のブロードキャスト変数・アキュムレータは実務でパフォーマンス問題に直面してから戻ると吸収率が高い。初読時は流し読みで可
- コードサンプルは Scala/Java/Python の 3 言語で示されているため、自分のプロジェクト言語に絞って読むと分量が 3 分の 1 程度に減る
出版社による内容紹介
次世代のビッグデータ処理のプラットフォームとして注目されるApache Sparkの総合解説書! 本書はSparkを初めて使う人から、クラスタ上で本格的な利用をする人までを一通り対象とした総合書籍であり、ビッグデータや機械学習に携わる開発者に広くアピールします
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。