为了初始化一个 Spark Streaming 程序,一个 StreamingContext 对象必须要被创建出来,它是所有的 Spark Streaming 功能的主入口点。
一个 StreamingContext 对象可以从一个 SparkConf 对象中创建出来。
import org.apache.spark._ import org.apache.spark.streaming._ val conf = new SparkConf().setAppName(appName).setMaster(master) val ssc = new StreamingContext(conf, Seconds(1))
这个 appName 参数是展示在集群用户界面上的你的应用程序的名称。 master 是一个 Spark, Mesos or YARN cluster URL ,或者一个特殊的 "local[*]" 字符串运行在本地模式下。在实践中,在一个集群上运行时,你不会想在程序中硬编码 master,而是使用 spark-submit 启动应用程序,并且接收这个参数。然而,对于本地测试和单元测试,你可以传递 "local[*]" 去运行 Spark Streaming 过程(检测本地系统中内核的个数)。请注意,这内部创建了一个 SparkContext (所有 Spark 功能的出发点),它可以像这样被访问 ssc.sparkContext。
这个批处理间隔(batch interval)必须根据您的应用程序和可用的集群资源的等待时间要求进行设置。详情请参阅 优化指南 部分。
一个 StreamingContext 对象也可以从一个现有的 SparkContext 对象中创建出。
import org.apache.spark.streaming._ val sc = ... // existing SparkContext val ssc = new StreamingContext(sc, Seconds(1))
一个 context 定义之后,你必须做以下几个方面。
要记住的要点 :