[51CTO.com クイック翻訳] Empathyのプラットフォームエンジニアリング技術責任者であるRamiro Alvarez Fernandez氏は、クラウドコンピューティングプロバイダーへの依存をなくし、Kubernetes上でApache Sparkを実行するためにSpark on Kubernetesを使用する方法を紹介し、このプロセスの課題、アーキテクチャ、ソリューションなどの詳細を共有しました。 課題Empathy の場合、本番環境で実行されるすべてのコードはクラウドに依存しないものでなければなりません。 Empathy は、EMR (AWS 上)、Dataproc (GCP 上)、HDInsight (Azure 上) などの Spark ソリューションを使用することで、クラウド コンピューティング プロバイダーが提供するソリューションへの以前の依存を克服しました。 これらのクラウド コンピューティング プロバイダーのさまざまなソリューションにより、クラウド上に Spark を簡単に導入できます。ただし、企業が規模を拡大すると、いくつかの制限に直面し、次の問題に対処する必要があります。
これらは、Spark ジョブを実装する際に直面する一般的な問題です。 Kubernetes を使用してこれらの問題を解決すると、作業者の時間と労力を節約し、より良いエクスペリエンスを提供できます。 Kubernetes 上で Apache Spark を実行すると、次のような利点があります。
メリットは、Kubernetes 上で実行される Apache Flink 向けの Empathy ソリューションと同じです。 Kubernetes 上で動作する Apache SparkApache Spark は、ビッグデータ処理用の統合分析エンジンであり、特に分散処理に適しています。 Spark は、現在最も大きなテクノロジートレンドの 1 つである機械学習に使用されます。 Apache Spark アーキテクチャSpark Submit を使用すると、Spark アプリケーションを Kubernetes クラスターに直接送信できます。プロセスは次のとおりです。 (1)Spark SubmitはクライアントからマスターノードのKubernetes APIサーバーに送信されます。 (2)Kubernetesは新しいSpark Driverポッドをスケジュールします。 (3)Spark DriverポッドはKubernetesと通信してSpark executorポッドを要求します。 (4)新しいエグゼキュータポッドはKubernetesによってスケジュールされます。 (5)新しいエグゼキュータポッドの実行が開始されると、KubernetesはSparkドライバーポッドに新しいSparkエグゼキュータポッドの準備ができたことを通知します。 (6)Sparkドライバーポッドは、新しいSparkエグゼキューターポッドでタスクをスケジュールします。 Spark 送信フローチャート Spark アプリケーションは、SparkSubmit (通常の方法) または Spark Operator を使用してスケジュールできます。 スパーク送信Spark Submit は、Spark アプリケーションを送信し、Spark クラスター上でアプリケーションを起動するためのスクリプトです。その優れた機能には次のようなものがあります:
スパーク演算子Spark Operator プロジェクトは Google によって開発され、現在はオープンソース プロジェクトとなっています。 Kubernetes カスタム リソースを使用して、Spark アプリケーションのステータスを指定、実行、表示します。その優れた機能には次のようなものがあります:
Spark Submit と Spark Operator の主なコマンド 上図は、Spark Submit と Spark Operator の主なコマンドを示しています。 Empathy のソリューションでは、ユースケースごとにカスタム Kubernetes マニフェストを作成する必要がある Spark Submit よりも高速な反復処理が可能な Spark Operator が好まれます。 ソリューションの詳細課題セクションで提起された問題に対処するには、CNCF プロジェクトのサポートとともに、ArgoCD と Argo Workflows が役立ちます。たとえば、お気に入りの Spark アプリケーション ワークロードを Kubernetes からスケジュールして、Argo ワークフローを作成し、順次ジョブを定義できます。 フローチャートは次のとおりです。
ソリューションフローチャート アルゴCDArgoCD は、Kubernetes 用の GitOps 継続的デリバリー ツールです。主な利点は次のとおりです。
より詳細な情報は公式ドキュメントに記載されています。 アルゴワークフローArgo Workflows は、Kubernetes 向けのワークフロー ソリューションです。主な利点は次のとおりです。
より詳細な情報は公式ドキュメントに記載されています。 モニターPrometheus にこれらのメトリックが取得されたら、それらを監視するための Grafana ダッシュボードが必要になります。 Apache Spark 用のカスタム Grafana ダッシュボードは、次のコミュニティ ダッシュボードに基づいています。
結論Empathy は、Kubernetes 上で Spark アプリケーション ワークフロー ソリューションを作成し、GitOps を使用して変更を伝播するために、Spark Operator、ArgoCD、および Argo Workflows を選択しました。この記事で紹介したセットアップは、約 1 か月間本番環境で使用されており、フィードバックは非常に良好です。すべてのユーザーがワークフローに満足しており、どのクラウド プロバイダーでも機能する単一のワークフローを使用することで、単一のクラウド コンピューティング プロバイダーへのロックインが排除されます。 自分でテストしたい場合は、これらの実践的な例に従って、このガイドで説明されているすべての設定を使用して、ローカルホストからいくつかの Spark アプリケーションをデプロイしてみてください: 実践的な Empathy リポジトリ。 まだ道のりは長いですが、さらなる利益が得られるでしょう。このイノベーションにより、企業がクラウドに依存しなくなることが期待されます。 原題: Kubernetes 上で Apache Spark を実行する、著者: Ramiro Alvarez Fernandez [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。 |
<<: Red HatとNutanixが協力してオープンハイブリッドマルチクラウドソリューションを提供
ヨーロッパのCN2ラインについて聞いたことがある人もいるかもしれませんが、実際にテストした人はほとん...
共同購入戦争が始まって約半年、共同購入業界の構図が徐々に明らかになってきた。第三者共同購入ナビゲーシ...
今日は、クラスターのセキュリティ制御を強化するために不可欠な、重要でありながらあまり知られていない補...
金融・保険業界団体は現在、規制当局からより大きな圧力を受けています。 [[347264]]コンプライ...
コンテナは企業に多大な価値と数多くのメリットをもたらすため、IT 環境を急速に変化させています。最新...
Sosowenwen は外部リンクを作成できますか? 人によって答えは異なりますが、これらの人々は非...
2009年から2011年にかけて、映画やテレビドラマなどのニューメディア(動画サイト)の著作権価格は...
著者 |サミュエル・アデバヨ徐潔成編纂現在でも、Kubernetes は開発者にとって最も需要のある...
前回の 2 つの記事「分析の前提条件 - データ品質 1」と「分析の前提条件 - データ品質 2」で...
[51CTO.com クイック翻訳] 現在、Kubernetes は GitHub 上で 5 億 8...
ウェブサイトで良い記事を見つけたら、通常どうしますか?そうです、多くの人がWeibo、WeChat ...
Kafka は分散型のパブリッシュ/サブスクライブ メッセージング システムです。 LinkedIn...
サイバーセキュリティ企業 Valtix による最近の調査では、回答者の 51% が、マルチクラウド環...
イノベーションは進歩を推進し、テクノロジーが急速に進化するにつれて、新しいトレンドが驚くべき方法で未...
ウェブサイトは、ユーザーに覚えてもらうために何かユニークなものを提供する必要があります。同時に、ユー...