【发布时间】:2015-10-28 19:21:03
【问题描述】:
我们有一个简单的 spark 流应用程序,通过 spark 从 kafka 流式传输事件并将其持久化到 redis 中。
最初我们使用Receiver-based Approach,它将批次复制到 HDFS 并随后开始处理。这种方法并不像我们希望的那样稳定(我们的 hadoop 机器上有很多流量),所以我们在 spark 流中切换到 Direct Approach (No Receivers)。
让我感到困惑的是文档中提到的 auto.offset.reset 参数。当作业失败或 sparkmaster 宕机时,我们会看到流作业通过处理大量事件来迎头赶上,然后加班稳定。
使用第二种方法,我们不再看到这种行为,我们不确定 spark-streaming 是真的赶上来还是刚刚从 auto.offset.reset latest 开始。
latest 是故障转移的合理默认值吗?流式作业真的能在重启/主故障时正确赶上吗?
谢谢, 渚
【问题讨论】:
标签: apache-spark apache-kafka spark-streaming failover