[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が協力してオープンハイブリッドマルチクラウドソリューションを提供
文化部は文化市場の知的財産権保護に注力するため、最近、地方の文化行政部門と文化市場の総合的な法執行機...
古代の医学書では、病気を治療する際には、すべての医師が観察、聴診、問診、触診の 4 つの手順を踏まな...
多くの企業は多くの製品を持っていますが、製品ページの内容は非常に薄く、多くの場合、写真と数行のテキス...
もうすぐ新年がやってきます。プロメテウスは皆様に素晴らしいギフトを低価格で提供しています。このような...
【導入】前回の 2 つの記事では、最近導入されたザクロ アルゴリズムの影響を簡単に分析し、その対処方...
2019 年のトップ クラウド プロバイダーは、さまざまなアナリストのランキングによるとその地位を維...
最近、Amazon Web Services は、量子コンピューティング ハードウェアの開発を支援す...
1. ファウンダー証券がTmallに出店、金融商品の電子商取引販売がトレンドに北京ニュース(記者 呉...
CentralHosts は設立されてからかなり経ちます。基本的には Lightwave に似た、個...
検索エンジンには、クロールとインデックス作成、そして関連性と重要度に応じて結果の回答をランク付けする...
最近 Business Review に書いたグループ購入に関する記事を共有したいと思います。商店主...
ウェブマスターの間では、「コンテンツは王、外部リンクは皇帝、内部リンクは側室、コードは将軍、キーワー...
検索エンジンのキーワードランキングに影響を与える要素は 200 以上ありますが、その中で外部リンクが...
SEO最適化を行うスタッフが最も望んでいるのは、ウェブサイトのランキングが継続的に上昇することです。...