2017-01-13 18 views
1

我在分爲兩個部分的作業:火花 - 執行期間變化的並行

  • 第一部分使用火花
  • 的seoncd部分計算重CPU密集型ML算法
從HBase的檢索數據

問題是,如果執行者/內核數量很多,HBase集羣會受到過分強烈的質疑,這可能會導致生產不穩定。由於執行器/內核太少,ML計算需要很長時間才能執行。

由於在啓動時設置了執行程序和內核的數量,我想知道是否有辦法減少作業的第一部分的執行程序編號。

我顯然希望避免運行像Hadoop這樣的兩個單獨的作業,在這兩個步驟之間執行mandary磁盤序列化。

感謝您的幫助

回答

0

我猜dynamic allocation是你在找什麼。這也可以用於火花流媒體。

我認爲您可能需要在RDD大小方面有所作爲,以平衡數據攝取和數據處理,但取決於您的真實使用情況,它可能非常具有挑戰性。

+0

感謝您的幫助。 「你的RDD尺寸稍微增加一點」意味着什麼。它是否將數據檢索分爲10個RDD,然後將它們聯合起來? – ogen

+0

我認爲,如果我的理解正確(您希望減少分區數量並減少應用程序的運行速度),在每個階段重新分配RDD的方式,尤其是針對您的情況的最早分析方法。在這個階段,你需要更多的執行者,並且你希望有更多的執行者用更多的分區進行重新分區,動態分配可以完成剩下的部分。 使用您的explain()來確保它在每個步驟中始終表現得像你想要的那樣。 –