一.简介
无法从Spark Streaming中的检查点恢复累加器和广播变量。如果启用检查点并同时使用“ 累加器”或“广播变量” ,则必须为“累加器”和“广播变量”创建延迟实例化的单例实例, 以便在驱动程序发生故障重新启动后可以重新实例化它们。
二.代码实现
package org.apache.spark.examples.streaming
import java.io.File
import java.nio.charset.Charset
import com.google.common.io.Files
import org.apache.spark.{
SparkConf, SparkContext}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.RDD
import org.apache.spark.streaming.{
Seconds, StreamingContext, Time}
import org.apache.spark.util.{
IntParam, LongAccumulator}
/**
* Use this singleton to get or register a Broadcast variable.
*/
object WordBlacklist {
@volatile private var instance: Broadcast[Seq[String]] = null
def getInstance(sc: SparkContext): Broadcast[Seq[String]] = {
if

本文介绍了Spark Streaming中检查点恢复时累加器和广播变量的问题。当启用检查点并结合使用累加器或广播变量时,需要通过延迟实例化的单例模式来确保在驱动程序故障后能够重新实例化这些组件。
最低0.47元/天 解锁文章
484

被折叠的 条评论
为什么被折叠?



