如何优雅地停止Spark Streaming Job】的更多相关文章

由于streaming流程序一旦运行起来,基本上是无休止的状态,除非是特殊情况,否则是不会停的.因为每时每刻都有可能在处理数据,如果要停止也需要确认当前正在处理的数据执行完毕,并且不能再接受新的数据,这样才能保证数据不丢不重. 同时,也由于流程序比较特殊,所以也不能直接kill -9这种暴力方式停掉,直接kill的话,就有可能丢失数据或者重复消费数据. 下面介绍如何优雅的停止streaming job. 第一种:人工手动停止 程序里设置如下参数: sparkConf.set("spark.str…
优雅地关闭Spark Streaming: 当touch stop文件后,程序仍然会再执行一次,执行完成后退出.…
本期内容 : Spark Streaming中的空RDD处理 Spark Streaming程序的停止 由于Spark Streaming的每个BatchDuration都会不断的产生RDD,空RDD有很大概率的,如何进行处理将影响其运行的效率.资源的有效使用. Spark Streaming会不断的接收数据,在不清楚接收的数据处理到什么状态,如果你强制停止掉的话,会涉及到数据不完整操作或者一致性相关问题. 一. Spark Streaming中的空RDD处理 : ForEachRDD是产生Ds…
Accumulators and Broadcast Variables 这些不能从checkpoint重新恢复 如果想启动检查点的时候使用这两个变量,就需要创建这写变量的懒惰的singleton实例. 下面是一个例子: def getWordBlacklist(sparkContext): if ('wordBlacklist' not in globals()): globals()['wordBlacklist'] = sparkContext.broadcast(["a", &…
4.1 初始化StreamingContext import org.apache.spark._ import org.apache.spark.streaming._ val conf = new SparkConf().setAppName(appName).setMaster(master) val ssc = new StreamingContext(conf, Seconds(1)) // 可以通过 ssc.sparkContext 来访问 SparkContext // 或者通过已…
在Spark Streaming程序中,若需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV.简单的代码描述如下,使用mapWithState()算子: val productPvStream = stream.mapPartitions(records => { var result = new ListBuffer[(String, Int)] for (record <- records) { result += Tuple2(record.key(), 1) } result…
Storm介绍 Storm是由Twitter开源的分布式.高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求.Storm常用于在实时分析.在线机器学习.持续计算.分布式远程调用和ETL等领域. 在Storm的集群里面有两种节点:控制节点(Master Node)和工作节点(Worker Node).控制节点上面运行一个名为Nimbus的进程,它用于资源分配和状态监控:每个工作节点上面运行一个Supervisor的进程,它会监听分配给它所在机器的…
使用场景 Spark Streaming实时消费kafka数据的时候,程序停止或者Kafka节点挂掉会导致数据丢失,Spark Streaming也没有设置CheckPoint(据说比较鸡肋,虽然可以保存Direct方式的offset,但是可能会导致频繁写HDFS占用IO),所以每次出现问题的时候,重启程序,而程序的消费方式是Direct,所以在程序down掉的这段时间Kafka上的数据是消费不到的,虽然可以设置offset为smallest,但是会导致重复消费,重新overwrite hive…
Spark Streaming Spark Streaming 是Spark为了用户实现流式计算的模型. 数据源包括Kafka,Flume,HDFS等. DStream 离散化流(discretized stream), Spark Streaming 使用DStream作为抽象表示.是随时间推移而收到的数据的序列.DStream内部的数据都是RDD形式存储, DStream是由这些RDD所组成的离散序列. 编写Streaming步骤: 1.创建StreamingContext // Creat…
官方文档地址:http://spark.apache.org/docs/latest/streaming-programming-guide.html Spark Streaming是spark api的扩展 能实现可扩展,高吞吐,可容错,的流式处理 从外接数据源接受数据流,处理数据流使用的是复杂的高度抽象的算法函数map reduce join window等 输出的数据可以存储到文件系统和数据库甚至是直接展示在命令行 也可以应用ml 和graph processing在这些数据流上 spar…