ISBN 9784774181240

詳解Apache Spark : 大規模データ分析を基礎から、徹底的に

詳解Apache Spark : 大規模データ分析を基礎から、徹底的に
出版社
技術評論社
刊行
2016-04

概要

Apache Spark の全コンポーネントを基礎から実践まで体系的に習得する

想定読者

データ分析・データエンジニアリングに取り組むエンジニアで、Hadoop/MapReduce の限界を感じ Spark へ移行を検討している人、または分散処理フレームワークを初めて本格的に学ぶ中級エンジニア

こんな人には向いていない

  • Spark を既に本番環境で運用しており、RDD・DataFrame・MLlib の基本を把握済みのシニアエンジニアには既知事項の比重が大きい
  • Python(PySpark)主体で学びたい読者には、本書のサンプルコードが Scala 中心のため読み替えコストが生じる
  • グラフ分析や機械学習の数理的背景まで深く学びたい場合、本書の MLlib・GraphX 章は実装利用の解説が主で理論的掘り下げは限定的

読了後にできるようになること

  • Spark の中核概念である RDD の遅延評価・変換・アクションの仕組みを説明できる
  • YARN・Standalone・Mesos に対応した Spark クラスタの構築と運用手順を実施できる
  • DataFrame API と Spark SQL を使い、構造化データに対して高効率なクエリを組める
  • Spark Streaming でリアルタイムデータをバッチ処理と統合するパイプラインを設計できる
  • MLlib で協調フィルタリングや分類器を実装し、実データセットに適用できる
  • GraphX でグラフ構造データを処理し、PageRank 等のアルゴリズムを実行できる

本書のキー概念(章解説)

  • 第 1 章 Apache Spark の基礎 — Spark の位置付けと Hadoop との比較を整理する導入章
  • 第 2 章 インストールと環境構築 — ローカル動作確認まで完結するため最初に通して実施すると後章の理解が速まる
  • 第 3 章 RDD のしくみと操作 — 本書の中核。遅延評価・パーティション・シャッフルの仕組みを押さえることが全コンポーネント理解の前提
  • 第 4 章 クラスタの構築と運用 — 本番投入を想定する読者が最優先で読むべき章。リソースマネージャ別の設定差異に注意
  • 第 5 章 DataFrame API と Spark SQL — 実務での頻度が最も高い章。Catalyst オプティマイザの恩恵を受ける書き方を習得できる
  • 第 6 章 Spark Streaming — リアルタイム要件のある案件で参照価値が高い。DStream の概念を図とともに理解すると定着が早い
  • 第 7 章 MLlib による機械学習 — Bay Area Bike Share データを使った実習形式。理論より実装寄りの構成
  • 第 8 章 GraphX によるグラフ処理 — グラフ分析ユースケースがある場合に参照する章。ここだけ独立して読むことも可能

ハイライト

  • Sparkの基礎であるRDDのしくみ、Sparkを構成する各コンポーネントの機能を理解するところからはじめます。さらにSparkクラスタの構築と運用、構造化データを処理するためのDataFrame APIとSpark SQL、ストリーミング処理のためのSpark Streaming、機械学習ライブラリMLlib、グラフ処理のためのGraphX(バッチ・SQL・ストリーミング・ML・グラフという Spark 全域をカバーする本書の構成が一目でわかる記述)

編集メモ

Qiita での本書直接引用記事は確認できず(ISBN 検索 0件)。2016年出版で Spark 1.x〜2.x 対応。現在の Spark 3.x 環境では API 差分が生じる箇所があり、Spark 入門として参照する補完的な位置付け

読む前に押さえておきたいこと

  • Java または Scala の基本的な文法(クラス・コレクション操作・ラムダ相当の記法)
  • Linux コマンドライン操作と SSH によるサーバ接続の経験
  • SQL の基本構文(SELECT / JOIN / GROUP BY)
  • 分散システムの概念(ノード・レプリカ・フォールトトレランス)についての大まかな理解

学習のコツ

  • 第 3 章(RDD)は全コンポーネントの土台となるため、飛ばさずに REPL で動かしながら読む。遅延評価の感覚をここで体得すると後章の習熟速度が上がる
  • クラスタ構築(4 章)は本番環境への投入を急ぐ場合、2〜3 章の後に前倒しで読んでも支障ない。残りコンポーネント章(5〜8)は独立性が高く興味分野から先に読める
  • サンプルコードは Scala で書かれている。PySpark 利用者は公式ドキュメントの Python 版 API と対照しながら読むと翻訳コストを下げられる
  • 出版が 2016 年であるため、Spark 3.x では廃止・変更された API(旧 SparkContext, DStream 等)がある。公式マイグレーションガイドを手元に置いて読むことを推奨
出版社による内容紹介

Apach Sparkはより高速にビッグデータを処理するための分散処理フレームワークです。SQLインターフェースや機械学習などの機能が標準で組み込まれ、バッチ処理だけでなくストリーミング処理や対話的な処理にも対応できるため、さまざまなシーンのデータ分析を強力にサポートします。本書では、Sparkの基礎であるRDDのしくみ、Sparkを構成する各コンポーネントの機能を理解するところからはじめます。さらにSparkクラスタの構築と運用、構造化データを処理するためのDataFrame APIとSpark SQL、ストリーミング処理のためのSpark Streaming、機械学習ライブラリMLlib、グラフ処理のためのGraphXの各コンポーネントの実践的な利用方法を基礎から徹底的に解説します。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。