[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が協力してオープンハイブリッドマルチクラウドソリューションを提供
以前の記事でも述べたように、Naihe は、ウェブサイト上のキーワードランキング コラム ページ (...
長い期間の思考と計画を経て、私はついに ZhanBang.com の構築を開始することを決定しました...
Enzu の BudgetVM は 10 年以上前から存在しており、多くの人がよく知っていると思いま...
まず、新年を迎え、石家荘SEOはA5スタッフ全員と大多数の中小規模のウェブマスターの皆様に新年のご多...
今年に入ってから、電子商取引業界は020モデルブームに巻き込まれている。偶然生き残った共同購入ウェブ...
広州地下鉄珠江新城駅では、余額宝と華夏火芭通が激しい競争を繰り広げている。バスの列に並んでいます。反...
コストの削減と効率性の向上は、イノベーションと開発における永遠のテーマです。過去10年間、開発者はコ...
過去2年間、「百機種戦争」は中国で人気の技術トピックになりました。 2020年以降、中国は大型モデル...
[51CTO.com からのオリジナル記事]モダン アプリケーションは、間違いなく近年最もホットなト...
ウェブサイトのコンテンツは、ウェブサイトの最も重要な構成要素です。検索エンジンであれ、ユーザーであれ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO の...
AWS Innovation Studio 第 2 号メジャーアップデート! 最近では、AWS を通...
一年を振り返ってみると、ビリビリのラベルは常に「輪を破る」ものでした。年初の年越しガラからその後の「...
月給5,000~50,000のこれらのプロジェクトはあなたの将来ですA5 Startup Netwo...
10月18日、易邦電力網は情報筋から、タオバオが史上最大の改訂を完了しようとしており、新バージョンは...