apache-spark - Spark 流和高可用性

标签 apache-spark spark-streaming high-availability

我正在构建作用于多个流的 Apache Spark 应用程序。

我确实阅读了文档的性能调整部分: http://spark.apache.org/docs/latest/streaming-programming-guide.html#performance-tuning

我没有得到的是:

1) 流式接收器是位于多个工作节点上还是驱动机器?

2)如果接收数据的节点之一发生故障(断电/重启)会发生什么

最佳答案

Are the streaming receivers located on multiple worker nodes or is the driver machine

接收器位于worker 节点上,这些节点负责使用保存数据的源。

What happens if one of the nodes that receives the data fails (power off/restart)

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

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

关于apache-spark - Spark 流和高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39510381/

相关文章:

apache-spark - Spark Streaming to Hive,每个分区的小文件太多

apache-kafka - CDH 5.8.3 中的 Spark Streaming Kafka 以 yarn-cluster 模式集成

docker - 从高可用性角度理解 docker swarm

http - 存储和转发带有重试的 HTTP 请求?

python - corosync、pacemaker和zookeeper之间有何关系?

apache-spark - 如何以编程方式在PySpark中获取有关执行者的信息

ubuntu - PySpark java.lang.ExceptionInInitializerError 由 : java. lang.StringIndexOutOfBoundsException 引起

apache-spark - 如何将多个 ML 管道(模型)应用于同一个 Spark 流

python - pyspark中导入多个py文件

apache-spark - 如何在独立主机中并行运行多个Spark应用程序