第5章. Sparkの分散処理モデル
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
分散処理システムであるSparkは、任意のワークロードを実行するために、コンピューティングリソースの可用性とアドレス指定可能性に依存している。
Sparkをスタンドアロンの分散システムとしてデプロイし、時間的な問題を解決することは可能だが、データ成熟度が進化している組織では、第3章で説明したように、完全なデータアーキテクチャをデプロイすることが求められることが多い。
この章では、Sparkとその計算環境との相互作用と、Sparkが選択した環境の特徴や制約にどのように適応する必要があるかについて議論したい。
まず、クラスタ・マネージャの現在の選択肢を調査する:クラスタ・マネージャのスコープはデータ分析の実行にとどまらないため、どのクラスタ・マネージャについても深い知識を得るためのリソースは豊富にある。 ここでは、Sparkが提供するクラスタ・マネージャについて、参考資料として補足説明を行う。
クラスタ・マネージャの役割とSparkとクラスタ・マネージャの相互作用について理解した後、分散環境におけるフォールト・トレランスの側面と、その中でSparkの実行モデルがどのように機能するかについて見ていく。
この背景を理解することで、Sparkが提供するデータの信頼性保証と、それがストリーミング実行モデルにどのように適用されるかを理解する準備ができる。
クラスタマネージャでApache Sparkを実行する
私たち 、まずクラスタを形成するマシンの集合にストリーム処理を分散させるという規律について見ていく。このマシンの集合は一般的な目的を持ち、ストリーミング・アプリケーションのランタイム・バイナリと起動スクリプトを受け取る必要がある。これは 、プロビジョニングとして知られているものだ。実際、最新のクラスタは自動的に管理され、多数のマシンを含んでいる。 、マルチテナントの状況にある。つまり、多くの利害関係者が、ビジネスの1日のさまざまな時間に同じクラスタにアクセスして使用することを望んでいる。そのため、クラスタはクラスタ・マネージャによって管理される。
クラスタ・マネージャは、多くのユーザーから利用要求を受け取り、それらをいくつかのリソースにマッチングさせ、ユーザーに代わってリソースを一定期間予約し、ユーザー・アプリケーションを多くのリソースに配置して使用させるソフトウェアの一部である。 クラスタ・マネージャの役割の課題には、利用可能なマシンのプールの中でユーザー要求を最適に配置したり、複数のユーザーが同じ物理インフラを共有する場合にユーザー・アプリケーションを安全に分離したりするような、自明ではないタスクが含まれる。 クラスタ・マネージャの利点には、タスクの断片化、最適な配置、可用性、先取り、優先順位付けなどがある。 したがって、クラスタ管理はApache Sparkの範疇を超えた、それ自体の学問分野である。 代わりに、Apache Sparkは既存のクラスタ・マネージャを活用して、クラスタ上でワークロードを分散する。
クラスターマネージャーの例
よく使われるクラスタ・マネージャの例としては、以下のようなものがある:
-
Apache YARNは、Apache Hadoopプロジェクトから生まれた比較的成熟したクラスタ・マネージャである。
-
Apache Mesosは、Linuxのコンテナ技術をベースにしたクラスタ・マネージャーであり、Apache ...
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