Kubernetes 上的火花。如何在 Kubernetes 中维护有状态的火花性质?
Spark on Kubernetes. How spark nature of statefulness is maintained in Kubernetes?
我正在 K8s 集群上试验 Spark2.3。想知道检查点是如何工作的?它存储在哪里?如果主驱动死了,现有的处理会怎样?
如果从Kafka消费,offset是怎么维护的?我尝试在线查找,但找不到这些问题的任何答案。我们的应用程序正在消耗大量 Kafka 数据,因此必须能够重新启动并从停止的地方恢复。
K8s 上的 运行 Spark Streaming 有什么问题吗?
The Kubernetes Spark Controller 对检查点一无所知,AFAIK。这只是 Kubernetes 安排您的 Spark 驱动程序和 运行 工作所需的工作人员的一种方式。
存储偏移量实际上取决于您的应用程序以及您想要存储 Kafka 偏移量的位置,以便在它重新启动时获取该偏移量并从那里开始消费。 is an example 关于如何将其存储在 Zookeeper 中。
例如,您可以在 Scala 中编写 ZK 偏移量管理器函数:
import com.metamx.common.scala.Logging
import org.apache.curator.framework.CuratorFramework
...
object OffsetManager extends Logging {
def getOffsets(client: CuratorFramework,
... = {
}
def setOffsets(client: CuratorFramework,
... = {
}
...
另一种方法是将您的 Kafka 偏移量存储在像 HDFS 这样可靠的地方。
我正在 K8s 集群上试验 Spark2.3。想知道检查点是如何工作的?它存储在哪里?如果主驱动死了,现有的处理会怎样?
如果从Kafka消费,offset是怎么维护的?我尝试在线查找,但找不到这些问题的任何答案。我们的应用程序正在消耗大量 Kafka 数据,因此必须能够重新启动并从停止的地方恢复。
K8s 上的 运行 Spark Streaming 有什么问题吗?
The Kubernetes Spark Controller 对检查点一无所知,AFAIK。这只是 Kubernetes 安排您的 Spark 驱动程序和 运行 工作所需的工作人员的一种方式。
存储偏移量实际上取决于您的应用程序以及您想要存储 Kafka 偏移量的位置,以便在它重新启动时获取该偏移量并从那里开始消费。 is an example 关于如何将其存储在 Zookeeper 中。
例如,您可以在 Scala 中编写 ZK 偏移量管理器函数:
import com.metamx.common.scala.Logging
import org.apache.curator.framework.CuratorFramework
...
object OffsetManager extends Logging {
def getOffsets(client: CuratorFramework,
... = {
}
def setOffsets(client: CuratorFramework,
... = {
}
...
另一种方法是将您的 Kafka 偏移量存储在像 HDFS 这样可靠的地方。