私はRMIクラスタを持っています。各RMIサーバには、Sparkコンテキストがあります。 異なるSparkコンテキスト間でRDDを共有する方法はありますか?2つのSparkコンテキスト間でSpark RDDを共有するには?
答えて
いいえ、RDDは1つのSparkContext
に結び付けられています。一般的な考え方は、Sparkクラスターと、クラスターに何をすべきかを伝える1つのドライバープログラムがあることです。このドライバにはSparkContext
があり、RDDで操作を開始します。
RDDをあるドライバプログラムから別のドライバプログラムに移動する場合は、最初のドライバのディスク(S3/HDFS/...)に書き込んで、もう一方のドライバのディスクから読み込みます。
Daniel Darabosがすでに述べたように、それは不可能です。 Sparkのすべての分散オブジェクトは、それを作成するために使用された特定のコンテキストにバインドされています(データセットの場合はSQLContext
)SparkContext
RDDの場合。アプリケーション間でオブジェクトを共有する場合は、共有コンテキストを使用する必要があります(たとえば、spark-jobserver
、Livy、またはApache Zeppelinを参照)。 RDD
またはDataFrame
はちょうど小さなローカルオブジェクトなので、実際に共有することはあまりありません。
データの共有はまったく別の問題です。特殊なメモリキャッシュ(Apache Ignite)やメモリファイルシステム(Alluxio - 旧Tachyonなど)を使用すると、アプリケーション間の切り替え時のレイテンシを最小限に抑えることができますが、実際には回避することはできません。
私の理解では、RDDはデータではありませんが、元のデータから変換/フィルタを介してデータを作成する方法です。
別の考え方ではなく、最終的なデータを共有することです。だから、あなたのような、データ・ストアにRDDを格納します: - HDFS(寄木細工のファイルなど。) - Elasticsearch - (インメモリ)のApacheのIgnite
私は、あなたは、ApacheのIgniteを愛すると思います:https://ignite.apache.org/features/igniterdd.html
アパッチのIgniteは、同じアプリケーション内で、または異なるスパーク アプリケーション間のいずれかで、容易に複数のスパーク ジョブを横切って、メモリ内の状態を共有することを可能にするスパークRDD抽象 の実装を提供します。
IgniteRDDが実装され 、処理を実行するスパークジョブ内またはスパークワーカーに、またはそれ自身のクラスタ内のいずれかで配備することができる分散型のIgniteキャッシュ、 上図のようになります。
(私はあなたが探しているものを見つけるために彼らのドキュメントを掘るしましょう。)
- 1. 2つのストリーム間のSparkストリーミング共有状態
- 2. RDD Aggregate in spark
- 3. Apache Spark RDDワークフロー
- 4. Apache Spark RDDのコレクションを1つのRDDに変換するJava
- 5. Sparkで既存のRDDにRDDを追加するには?
- 6. RDDとApache Sparkのパーティション
- 7. Spark DataSetとRDDの違い
- 8. Apache Spark RDDのScalazタイプクラス
- 9. Sparkの機能に基づいて共通鍵を使用しない2つのRDDに参加する
- 10. SparkでのRDD数の最大制限
- 11. Spark RDDのフィールドを選択します
- 12. Spark RDDの文字列置換
- 13. Sparkで同じRDDを2回キャッシュするとどうなるのですか?
- 14. Apache Sparkで特定のワーカーにRDDを処理する
- 15. Sparkで明示的にRDDを実現する方法
- 16. SpringコンテキストをSparkワーカーノードに渡す方法
- 17. Spark/Scala - リストのRDDでkeyByを使用する[Int、Double]
- 18. ScalaとApache Sparkで2つのDataFramesを結合するには?
- 19. Sparkでのハッシュパーティショニング
- 20. ビューモデル間のコンテキストの共有
- 21. .NETユニットテストクラス間の共有コンテキスト
- 22. 2つのVM間でプロパティを共有
- 23. 2つのアプリケーション間でネイティブライブラリを共有
- 24. Spark RDDから空のパーティションを削除します
- 25. 2つのアプリケーション間でSqliteを共有するには?
- 26. REST Webサービスのコンテキストでsparkジョブを呼び出す方法は?
- 27. Spark RDDの各キーの最大値を取得
- 28. mavenアーティファクトspark-core_2.10とspark-core_2.11の間のスパークの違い
- 29. Sparkでのデータ展開
- 30. spark cassandra update/upsert