[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が協力してオープンハイブリッドマルチクラウドソリューションを提供
医療ウェブサイトを運営している友人は、まだランクインはしているがランキングには入っていないのではない...
【TechWeb Report】1月25日、百度は最近、登録なしですぐに注文できるショッピングウェブ...
kubebuilderはクライアントのような昨年執筆した一連の記事[1]では、オペレータ開発プロセス...
SEO ウェブサイトの最適化といえば、誰もがキーワード ランキングの最適化を思い浮かべると思います。...
オンライン配車サービス企業が滴滴出行を「包囲攻撃」したのは今回が初めてではない。 4年前、ライドシェ...
調査によると、世界的なコロナウイルスのパンデミックにより、クラウドコンピューティング関連の仕事の需要...
月収10万元の起業の夢を実現するミニプログラム起業支援プランまず、2つの概念を明確にする必要がありま...
1. Kubernetesの利点と欠点1. Kubernetesの利点高可用性: Kubernete...
12月10日、北京でPartner Cloud × Enterprise WeChat合同記者会見が...
今日、ウェブサイトが成功したいのであれば、ユーザーが本当に必要としているものを研究するために、より多...
周志全氏は法廷で判決を聞いている。写真は北京タイムズ記者の潘東風氏によるもの。HDビデオ愛好家にとっ...
ssdvps はしばらく存在していなかったため、今回はプロモーション用の VPS が 2 つあり、特...
パンデミックが始まって3年目を迎え、世界中の企業がリモートワークに適応したか、適応に取り組んでいます...
SEO 担当者になるのは実はとても簡単です。なぜそう言うのでしょうか? 記事を書いて外部リンクを投稿...
おそらく、この記事のタイトルを読んだ読者は、私が「独創性が必須」と主張していると思うに違いありません...