我正在构建支持多个流的Apache Spark应用程序。
我确实阅读了文档的性能调优部分: http://spark.apache.org/docs/latest/streaming-programming-guide.html#performance-tuning
我没有得到的是:
1)流媒体接收器是位于多个工作节点还是驱动程序机器?
2)如果其中一个接收数据的节点发生故障(断电/重启)
,会发生什么答案 0 :(得分:3)
流媒体接收器是位于多个工作节点还是 司机
接收器位于 worker 节点上,这些节点负责消耗保存数据的源。
如果接收数据的其中一个节点发生故障(电源,会发生什么) 关闭/重启)
接收器位于工作节点上。工作节点从驱动程序获取它的任务。如果您在客户端模式下运行,则此驱动程序可以位于专用主服务器上;如果您在群集模式下运行,则该驱动程序可以位于其中一个工作服务器上。如果节点发生故障并且未运行驱动程序,则驱动程序会将故障节点上保存的分区重新分配给另一个,然后可以从源重新读取数据,并执行其他操作。处理失败所需的处理。
这就是需要像Kafka或AWS Kinesis这样的可重放源的原因。