同じ前のジョブによって生成された入力を受け取るスパークジョブを実行しています。今すぐジョブはHDFSに結果を出力し、次の実行で読み込みます。次の実行でHDFSから読み取る必要がないように、各ジョブの出力をキャッシュします。スパーク:別のジョブで使用するキャッシュRDD
アップデート:または異なるアプリケーション間でRDDを共有することができますか?
同じ前のジョブによって生成された入力を受け取るスパークジョブを実行しています。今すぐジョブはHDFSに結果を出力し、次の実行で読み込みます。次の実行でHDFSから読み取る必要がないように、各ジョブの出力をキャッシュします。スパーク:別のジョブで使用するキャッシュRDD
アップデート:または異なるアプリケーション間でRDDを共有することができますか?
これを直接行うことはできません。しかし、あなたに役立つ解決策はいくつかあります。
@ morfious902002は、階層型ストレージ(メモリ/ hdfs/s3)を提供するAlluxio(ただし、クラスタにインストールする必要があります)を使用できます。
別のオプションは、同じsparkコンテキストを保持するspark-jobserverまたはalikesを使用し、REST API経由でこのサーバーにジョブを送信することです。すべてのジョブが同じ長いリビング環境で実行されるため、ジョブ間でRDDを共有できます。
EDIT:古い
いいえ、それはアプリケーション間でRDDを共有することはできません。
これをディスクまたはデータベースに保存する必要があります。
Alluxioを使用してメモリ内で永続化して、2番目のジョブの読み込みを高速化できます。 – morfious902002
Apache Igniteが最適です。 – morfious902002
2番目のジョブをストリーミングジョブとして書き込むとどうなりますか?それは実現可能ですか? –
@SumitKumarGhoshいいえ、実際にはそれらの2つのジョブは同じです。繰り返し実行すると、1つのジョブの出力は同じ次のジョブの入力になります。 – elgoog