2015-08-18 40 views
2

Oozie 4.2.0版支持Spark作爲Spark作業運行,是否可以在操作之間共享RDD我的一個動作會讀取文件並執行一些轉換,並創建一個RDD,然後說rdd1,然後將(Spark Action)保存到HDFS,現在有可能另一個oozie動作將採用rdd1並執行一些轉換和操作。Oozie和Spark整合

以上是可能通過單個Spark驅動程序類,但我正在研究oozie解決方案,因爲Spark驅動程序類對於複雜的工作流程將非常複雜。

在此先感謝您的回答。

問候, Gouranga Basak

回答

0

一種解決方案可以使用spark jobserver使用跨多個作業一樣的火花上下文。

另一種解決方案可能是使用tachyon來基本上完成上面描述的內容,並將中間結果存儲到tachyon中,它保存在內存中用於下一個作業使用它。

但是,最好的方法是重構流水線,以便它可以在相同的上下文中執行,或只處理性能命中。您可以將rdd保存爲hdfs並使用以下代碼重新加載:

# In job 1 
rdd.saveAsObjectFile("path") 

# In job 2 
sc.objectFile[MyClass]("path")