2016-03-22 7 views
3

同じ前のジョブによって生成された入力を受け取るスパークジョブを実行しています。今すぐジョブはHDFSに結果を出力し、次の実行で読み込みます。次の実行でHDFSから読み取る必要がないように、各ジョブの出力をキャッシュします。スパーク:別のジョブで使用するキャッシュRDD

アップデート:または異なるアプリケーション間でRDDを共有することができますか?

+2

Apache Igniteが最適です。 – morfious902002

+0

2番目のジョブをストリーミングジョブとして書き込むとどうなりますか?それは実現可能ですか? –

+0

@SumitKumarGhoshいいえ、実際にはそれらの2つのジョブは同じです。繰り返し実行すると、1つのジョブの出力は同じ次のジョブの入力になります。 – elgoog

答えて

4

これを直接行うことはできません。しかし、あなたに役立つ解決策はいくつかあります。

@ morfious902002は、階層型ストレージ(メモリ/ hdfs/s3)を提供するAlluxio(ただし、クラスタにインストールする必要があります)を使用できます。

別のオプションは、同じsparkコンテキストを保持するspark-jobserverまたはalikesを使用し、REST API経由でこのサーバーにジョブを送信することです。すべてのジョブが同じ長いリビング環境で実行されるため、ジョブ間でRDDを共有できます。

4

EDIT:古い

いいえ、それはアプリケーション間でRDDを共有することはできません。

これをディスクまたはデータベースに保存する必要があります。

+1

Alluxioを使用してメモリ内で永続化して、2番目のジョブの読み込みを高速化できます。 – morfious902002

関連する問題