2016-09-15 69 views

回答

3

位于多个工作节点的流的接收器或是 驱动机

接收者位于工作人员节点上,这些节点负责保存数据的源的消耗。

如果接收数据的节点中的一个出现故障(电源关闭 /重启)

接收机位于工作节点上会发生什么情况。工作节点从驱动程序获取它的任务。如果您在客户端模式下运行,该驱动程序可以位于专用主服务器上,也可以在集群模式下运行时位于其中一个工作者上。如果节点发生故障而不运行驱动程序,则驱动程序会将故障节点上保存的分区重新分配给另一个分区,然后该分区将能够从源重新读取数据,并执行额外的操作需要从失败中恢复的处理。

这就是为什么需要重放源如Kafka或AWS Kinesis的原因。

+0

好的,所以如果带接收器的工人将被杀死 - 驱动程序将重新实例化接收器,并且新工人将再次开始接收数据 - 所有这一切都会自动进行。这听起来很合理,但它是否在某处被记录? –

+1

@PiotrR我认为你是[寻找这个](http://spark.apache.org/docs/latest/streaming-programming-guide.html#fault-tolerance-semantics) –