第1章 Apache Sparkとは何か? Apache Sparkとは何か?
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Apache Sparkは、コンピュータクラスタ上で並列データ処理を行うための統一されたコンピューティングエンジンとライブラリのセットである。本稿執筆時点で、Sparkはこのタスクのために最も活発に開発されているオープンソースエンジンであり、ビッグデータに関心のある開発者やデータサイエンティストにとって標準的なツールとなっている。Sparkは広く使われている複数のプログラミング言語(Python、Java、Scala、R)をサポートし、SQLからストリーミング、マシン学習まで多様なタスクに対応するライブラリを含み、ノートPCから数千台のサーバからなるクラスタまでどこでも動作する。このため、ビッグデータ処理や信じられないほど大規模なスケールにスケールアップすることも、簡単に始めることができる。
図1-1は、Sparkがエンドユーザに提供するすべてのコンポーネントとライブラリを示している( )。
図1-1. Sparkのツールキット
カテゴリーが本書の各パートにほぼ対応していることに気づくだろう。本書の目的はSparkのあらゆる側面について学ぶことであり、Sparkは多くの異なるコンポーネントで構成されている。
本書を読み取り中であることを考えると、Apache Sparkとそれができることについてはすでに少し知っているかもしれない。それでもこの章では、Sparkの背後にある基本的な哲学、Sparkが開発された背景(なぜ誰もが突然並列データ処理に興奮しているのか)、そしてその歴史について簡単に説明したい。また、Sparkを実行するための最初のいくつかのステップについても概説する。
Apacheスパークの哲学
Apache Spark(ビッグデータ用統合コンピューティング・エンジンおよびライブラリ群)の説明を、主要なコンポーネントに分解してみよう:
- 統一された
-
Sparkの重要な目標( )は、ビッグデータ・アプリケーションを書くための統一プラットフォームを提供することだ。統一的とはどういう意味か?Sparkは、単純なデータロードやSQLクエリからマシン学習やストリーミング計算まで、幅広いデータ分析タスクを同じコンピューティングエンジンと一貫したAPIセットでサポートするように設計されている。この目標の背景にある主な洞察は、現実世界のデータ分析タスクは、Jupyterノートブックなどのツールでのインタラクティブな分析であれ、本番アプリケーションのための従来のソフトウェア開発であれ、多くの異なる処理タイプやライブラリを組み合わせる傾向があるということだ。
Sparkの統一された性質は、これらの作業をより簡単かつ効率的にする。第一に、Sparkは一貫性のあるコンポーザブルなAPIを提供しており、それを使ってアプリケーションを小さな断片から、あるいは既存のライブラリから構築することができる。また、その上に独自の分析ライブラリを書くのも簡単だ。しかし、コンポーザブルAPIだけでは十分ではない:SparkのAPIは、ユーザプログラム内で一緒に構成される様々なライブラリや関数を横断的に最適化することで、高いパフォーマンスを実現するようにも設計されている。例えば、SQLクエリを使ってデータをロードし、SparkのMLライブラリを使ってその上でマシン学習モデルを評価する場合、エンジンはこれらのステップを1回のデータスキャンにまとめることができる。一般化されたAPIと高性能な実行の組み合わせは、それらをどのように組み合わせても、Sparkを対話型アプリケーションやプロダクション・アプリケーションのための強力なプラットフォームにしている。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access