如何在Zeppelin上的Apache Spark中停止StreamingContext

时间:2015-09-04 15:48:07

标签: apache-spark apache-zeppelin

import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.streaming.eventhubs.EventHubsUtils
import sqlContext.implicits._

val ehParams = Map[String, String](
    "eventhubs.policyname" -> "Full",
...
)

val ssc = new StreamingContext(sc, Seconds(2))
val stream = EventHubsUtils.createUnionStream(ssc, ehParams)
val cr = stream.window(Seconds(6))

case class Message(msg: String)
stream.map(msg=>Message(new String(msg))).foreachRDD(rdd=>rdd.toDF().registerTempTable("temp"))

stream.print
ssc.start

上面这个开始并运行良好,但我似乎无法阻止它。对%sql show tables的任何调用都将冻结。

如何停止上面的StreamingContext?

2 个答案:

答案 0 :(得分:5)

ssc.stop也会杀死Spark上下文,需要重启解释器。

改为使用ssc.stop(stopSparkContext=false, stopGracefully=true)

答案 1 :(得分:1)

新段落中的

ssc.stop应该停止

关于如何改善与流媒体平台的集成,还有一个持续的discussion in the dev@ mailing list