我是Spark中的新成員。Apache Spark和不可序列化的應用程序上下文
我想使用Spark和map-reduce方法並行化我的計算。 但是,我將這個計算放到Map階段的PairFunction實現中,需要一些要初始化的上下文。這個上下文包含來自第三方jar的多個單例對象,並且這些對象不是可序列化的,所以我不能在工作節點上傳播它們,並且不能在我的PairFunction中使用它們。
所以我的問題是:我可以以某種方式並行化需要使用Apache Spark不可序列化的上下文的作業嗎?還有其他解決方案嗎?也許我可以告訴Spark在每個工作節點上初始化所需的上下文?
你的問題對我來說有點含糊。我會試着根據我對它的理解來回答。 Spark有兩個主要的執行環境:代碼以正常(非分佈式)方式運行的驅動程序。這是您可以初始化上下文並打開spark上下文的地方。分佈式代碼將在工作人員上執行。 –
我的問題是關於應該通過工作人員執行的分佈式代碼。問題是這段代碼必須使用不可序列化的第三方對象。所以我不能在主服務器上實例化它們,然後通過網絡傳遞給工作人員。我想知道是否有任何解決方法。 – Doob
如果您的代碼將被運送給工人,它應該被序列化。沒有解決辦法。如果你不需要這些對象在工人內部,你可以聲明它們是暫時的。 –