Sparkでローカル環境に機械学習の実行環境を作る | [書評]詳解 Apache Spark

詳解 Apache Spark
著者: 下田 倫大
ISBN:4774181242 / 発売日:2016-04-29
出版社.: 技術評論社

高速ビッグデータクラスタリング処理フレームワーク

Apache Sparkは、Apacheプロジェクトの分散処理フレームワークです。同じ分散処理フレームワークのApache Hadoopと似ていますが、本書の「1.1 Apache Sparkとは?」で次のように述べられています。

Sparkと比較する対象としては、Hadoopを構成する要素の1つであるMapReduceが適切でしょう。
(中略)
さて、それではMapReduceがすでに普及した今、Sparkに注目が集まっているのはなぜでしょうか?その答えはMapReduceがバッチ処理に特化した仕組みになっているのに対し、Sparkはバッチ処理だけでなく対話的な処理や繰り返し処理、さらにはストリーミング処理といった、多様データ処理のパターンに対応できるしくみになっているためです。

バッチ処理に拒否反応のある方は是非Sparkを使いましょう。

機械学習の基礎を、環境構築から学べる

本書は、非常によく構成が考えられており、大変読みやすくなっています。複雑で難しい内容については、概要を説明し、実例を示すことで、理解できるようにしてくれています。

Sparkは、他のフレームワークのコンポーネントや実装を使用することで、多種多様な環境に対応できます。ともすれば、説明が煩雑になるのですが、図と文章によりわかりやすくなっています。本書は、タイトルに「詳解」とあるように入門書ではありません。しかし、ある程度プログラミングをしたことがある方であれば理解できる構成になっています。

本書の流れとしては、以下のようになっています。
・Spark実行環境を作る
・とりあえずスタンドアロンで動かす
・Sparkの基本を理解する(ここ重要です)
・クラスタで動かしてみる
・データ処理をやってみる(Data FrameとSQLについてです)
・ストリーミングをやってみる(これも面白いです。いろいろ遊べそうです)
・機械学習の基礎の基礎を学んで試してみる(オススメの章です)
・グラフ構造の使い方を知る(GraphXについてですが、グラフを描くわけではありません)

よくできたフレームワークなSpark

Sparkは、Spark SQLにしろ、ストリーミングにしろ、機械学習にしろ、いろいろなパターンに適用できますし、クラスタもHadoop YARNやAmazon EC2など選ぶことができます。Sparkがよくできたフレームワークであることがわかります。

本書は多くのサンプルプログラムが載っています。すべてScalaですが、インタプリタで簡単に試すものと、コンパイルしてアプリケーションとしてちゃんと動かすものとに分けてくれています。Sparkは、Java、Python、Rでも動作しますので、好きな言語で作成しましょう。私は、Javaプログラマですが、この本のおかげで、Scalaを勉強してみたくなりました。

また、ストリーミングと機械学習については、サンプルを参考にして、「なんか面白いものを作ってみたい」と読者に思わせること請け合いです。

最後に

この手の技術系書籍は、どのような順番で、どのレベルまで突っ込んで、わかりやすく、解説するかが決め手だと思います。その観点では、本書は、非常に良く読者思考で内容が考えられており、書籍としても優れています。

詳解 Apache Spark
著者: 下田 倫大
ISBN:4774181242 / 発売日:2016-04-29
出版社.: 技術評論社

あわせて読みたい