2016-09-15 128 views

回答

3

位於多個工作節點的流的接收器或是 驅動機

接收者位於工作人員節點上,這些節點負責保存數據的源的消耗。

如果接收數據的節點中的一個出現故障(電源關閉 /重啓)

接收機位於工作節點上會發生什麼情況。工作節點從驅動程序獲取它的任務。如果您在客戶端模式下運行,該驅動程序可以位於專用主服務器上,也可以在集羣模式下運行時位於其中一個工作者上。如果節點發生故障而不運行驅動程序,則驅動程序會將故障節點上保存的分區重新分配給另一個分區,然後該分區將能夠從源重新讀取數據,並執行額外的操作需要從失敗中恢復的處理。

這就是爲什麼需要重放源如Kafka或AWS Kinesis的原因。

+0

好的,所以如果帶接收器的工人將被殺死 - 驅動程序將重新實例化接收器,並且新工人將再次開始接收數據 - 所有這一切都會自動進行。這聽起來很合理,但它是否在某處被記錄? –

+1

@PiotrR我認爲你是[尋找這個](http://spark.apache.org/docs/latest/streaming-programming-guide.html#fault-tolerance-semantics) –