编辑: 山南水北 | 2019-07-03 |
?降低硬件集群、软件维护、任 务监控和应用开发的难度;
?便于做成统一的硬件、计算平 台资源池. 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.3 DStream操作概述 7.3.1 Spark Streaming工作机制 7.3.2 Spark Streaming程序的基本步骤 7.3.3 创建StreamingContext对象 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.3.1 Spark Streaming工作机制 ?在Spark Streaming中,会有一个组件Receiver,作为一个长期运 行的task跑在一个Executor上 ?每个Receiver都会负责一个input DStream(比如从文件中读取数据 的文件流,比如套接字流,或者从Kafka中读取的一个输入流等等) ?Spark Streaming通过input DStream与外部数据源进行连接,读取 相关数据 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.3.2 Spark Streaming程序的基本步骤 编写Spark Streaming程序的基本步骤是: 1.通过创建输入DStream来定义输入源 2.通过对DStream应用转换操作和输出操作来定义流计算 3.用streamingContext.start()来开始接收数据和处理流程 4.通过streamingContext.awaitTermination()方法来等待 处理结束(手动结束或因为错误而结束) 5.可以通过streamingContext.stop()来手动结束流计算 进程 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.3.3 创建StreamingContext对象 ?如果要运行一个Spark Streaming程序,就需要首先生成一个 StreamingContext对象,它是Spark Streaming程序的主入口 scala>
import org.apache.spark.streaming._ scala>
val ssc = new StreamingContext(sc, Seconds(1)) ?可以从一个SparkConf对象创建一个StreamingContext对象 ?登录Linux系统后,启动spark-shell.进入spark-shell以后, 就已经获得了一个默认的SparkConext,也就是sc.因此, 可以采用如下方式来创建StreamingContext对象: 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.3.3 创建StreamingContext对象 如果是编写一个独立的Spark Streaming程序,而不是在 spark-shell中运行,则需要通过如下方式创建 StreamingContext对象: import org.apache.spark._ import org.apache.spark.streaming._ val conf = new SparkConf().setAppName( TestDStream ).setMaster( local[2] ) val ssc = new StreamingContext(conf, Seconds(1)) 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.4 基本输入源 7.4.1 文件流 7.4.2 套接字流 7.4.3 RDD队列流 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.4.1 文件流 $ cd /usr/local/spark/mycode $ mkdir streaming $ cd streaming $ mkdir logfile $ cd logfile 1.在spark-shell中创建文件流 《Spark编程基础》 厦门大学计算机科学系 林子雨 [email protected] 7.4.1 文件流 进入spark-shell创建文件流.请另外打开一个终端窗口, 启动进入spark-shell scala>
import org.apache.spark.streaming._ scala>
val ssc = new StreamingContext(sc, Seconds(20)) scala>
val lines =........