第17章. Sparkをデプロイする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章( )では、Sparkアプリケーションを実行するために必要なインフラについて説明する:
-
クラスタデプロイの選択
-
Sparkの様々なクラスタ・マネージャー
-
デプロイに関する考慮事項とデプロイの構成
、Sparkはサポートされている全てのクラスタ・マネージャと同じように動作するはずだ。しかし、セットアップをカスタマイズするには、各クラスタ管理システムの複雑さを理解する必要がある。難しいのは、クラスタ・マネージャーを決める(あるいはマネージド・サービスを選ぶ)ことだ。異なるクラスタマネージャで異なるクラスタを構成する方法についての詳細をすべて記載したいところだが、本書ではあらゆる環境におけるあらゆる状況について超特殊な詳細を提供することは不可能である。そのため、本章のゴールは、各クラスタマネージャを詳細に説明することではなく、それらの基本的な違いに注目し、Webサイトですでに公開されている多くの資料のリファレンスを提供することである。残念ながら、ユースケース、経験、リソースによって大きく異なるため、「どのクラスタマネージャーが最も実行しやすいか」という簡単な答えはない。Sparkのドキュメントサイトには、Sparkのデプロイに関する詳細が、実用的な例とともにたくさん掲載されている。我々は、最も関連性の高い点を説明するよう最善を尽くしている。
現在、Sparkは3つのクラスタ・マネージャを公式にサポートしている:
-
スタンドアロンモード
-
Hadoop YARN
-
Apache Mesos
これらのクラスタマネージャは、Spark Applicationsをデプロイできるマシンのセットを管理する。当然ながら、これらのクラスタマネージャはそれぞれ管理に対して独自の見解を持っているため、トレードオフやセマンティクスに留意する必要がある。しかし、Sparkアプリケーションの実行方法はすべて同じである(第16章で説明する)。まず最初の点、クラスターをどこにデプロイするかから始めよう。
Sparkアプリケーションを実行するクラスタをどこにデプロイするか?
Sparkクラスタをデプロイする場所には、オンプレミスのクラスタにデプロイするか、パブリッククラウドにデプロイするかの2つのハイレベルな選択肢がある。この選択は重要であり、議論する価値がある。
オンプレミス・クラスターのデプロイ
Sparkをオンプレミスのクラスタにデプロイすることは、特に自社のデータセンターを既に管理している組織にとっては、合理的な選択肢である場合がある。何事にも言えることだが、このアプローチにはトレードオフがある。オンプレミスクラスターでは、使用するハードウェアを完全にコントロールできるため、特定のワークロードに合わせてパフォーマンスを最適化できる。しかし、特にSparkのようなデータ分析ワークロードに関しては、いくつかの課題も生じる。第一に、オンプレミスのデプロイでは、クラスタのサイズは固定されるが、データ分析ワークロードのリソース需要は弾力的であることが多い。クラスターを小さくしすぎると、時折発生する非常に大規模な分析クエリや新しいマシン学習モデルのトレーニングジョブを起動するのが難しくなり、逆に大きくするとリソースがアイドル状態になる。第二に、オンプレミスクラスターの場合、Hadoopファイルシステムやスケーラブルキーバリューストアなど、独自のストレージシステムを選択し、運用する必要がある。これには、必要に応じてジオレプリケーションやディザスタリカバリのセットアップも含まれる。 ...
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