當使用增加分區的函數時,似乎會產生空的階段,調用重新分區時會發生同樣的情況,階段溢出了spark UI,並且我無法跟蹤真實階段,它使得UI無用使用reduceByKey時spark spark會繼續產生階段
我用火花1.1.0使用默認設置
當使用增加分區的函數時,似乎會產生空的階段,調用重新分區時會發生同樣的情況,階段溢出了spark UI,並且我無法跟蹤真實階段,它使得UI無用使用reduceByKey時spark spark會繼續產生階段
我用火花1.1.0使用默認設置
與火花流要處理的數據流。與例如,你連接它工作在一個批次數據的每個1秒:
JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, Durations.seconds(1));
這意味着每個1秒你有DSTREAM的內部產生一個單獨的RDD並執行所有的轉化。這會導致您在WebUI中看到許多單獨的階段逐一執行的事實 - 這是在每個單獨的輸入批次頂部執行的轉換
DStream內批處理RDD中創建的分區數量可以計算爲batch interval/spark.streaming.blockInterval
其中默認設置會給你每個200毫秒額外的分區。嘗試將批處理間隔增加到1分鐘或至少30秒,並且您會看到這一點更好 - 幾乎您在nc
中輸入的每行都會被轉換爲單獨的分區,並且單獨的分區會導致調度單獨的任務來處理它,這就是爲什麼一些階段會有超過1個任務。
你能澄清你的問題嗎?您使用哪個Spark版本?提供您使用的代碼或至少它的簡化版本?你不把舞臺和任務混合在一起嗎?您使用的流式傳輸的設置(批處理間隔,spark.streaming.blockInterval,接收器數量)是多少? – 0x0FFF 2015-01-21 10:43:36
我指的是在ui中完成的階段表而不發送數據到套接字spark繼續向表中添加條目 – ran 2015-01-21 11:43:27