189 8069 5689

sparkStreaming的编程步骤-创新互联

(1)StreamingContext

  与spark core的编程类似,在编写SparkStreaming的程序时,也需要一个通用的编程入口----StreamingContext。
StreamingContext的创建

成都创新互联-专业网站定制、快速模板网站建设、高性价比徐汇网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式徐汇网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖徐汇地区。费用合理售后完善,十年实体公司更值得信赖。
object StreamingContextTest {
 def main(args: Array[String]): Unit = {
 val sparkConf = new SparkConf().setAppName("SCTest").setMaster("local[4]")
 val streamingContext = new StreamingContext(sparkConf, Seconds(2))
 }
}

注意
sparkStreaming的编程步骤
如果在计算的时候,指定--master时 使用的是local 并且只指定了一个线程,那么只有receiver线程工作,计算的线程不会工作,所以在指定线程数的时候,最少指定2个。

(2)通过输入源创建InputDStream:

在构建好StreamingContext之后,首先我们要读取数据源的数据进行实时处理:
  InputDStreams指的是从数据流的源头接收的输入数据流,每个 InputDStream 都关联一个 Receiver 对象,该 Receiver 对象接收数据源传来的数据并将其保存在内存中以便后期 Spark 处理。
  Spark Streaming 提供两种原生支持的流数据源和自定义的数据源:
    - 直接通过 StreamingContext API 创建,例如文件系统(本地文件系统及分布式文件系统)、 Socket 连接及 Akka 的 Actor。
    - Kafka, Flume, Kinesis, Twitter 等,需要借助外部工具类,在运行时需要外部依赖
    -Spark Streaming 还支持用户自定义数据源,它需要用户定义 receiver
注意
  - 在本地运行 Spark Streaming 时,master URL 不能使用”local”或”local[1] ”,因为当 Input DStream 与 Receiver(如 sockets, Kafka, Flume 等)关联时,Receiver 自身就需要一个线程 来运行,此时便没有线程去处理接收到的数据。因此,在本地运行 SparkStreaming 程序时,要使用”local[n]”作为 master URL,n 要大于 receiver 的数量。
  - 在集群上运行 Spark Streaming 时,分配给 Spark Streaming 程序的 CPU 核数也必须大于 receiver 的数量,否则系统将只接受数据,无法处理数据。

(3)对DStream进行transformation 和 output 操作,这样操作构成了后期流式计算的逻辑

(4)通过streamingContext.start()方法启动接收和处理数据的流程

(5)使用streamingContext.awaitTermination()方法等待程序结束(手动停止或出错停止)

(6)调用streamingContext.stop()方法来结束程序的运行。


在编写sparkStreaming时的注意点
  - streamingContext启动后,增加新的操作将不起作用,一定要在启动之前定义好逻辑,也就是说在调用start方法之后,在对sparkStreaming程序进行逻辑操作是不被允许的
  - StreamingContext 是单例对象停止后,不能重新启动,除非重新启动任务,重新执行计算
  - 在单个jvm中,一段时间内不能出现两个active状态的StreamingContext
  - 当在调用 StreamingContext 的 stop 方法时,默认情况下 SparkContext 也将被 stop 掉, 如果希望 StreamingContext 关闭时,能够保留 SparkContext,则需要在 stop 方法中传入参 数 stop SparkContext=false
  - 一个 SparkContext 可以用来创建多个 StreamingContext,只要前一个 StreamingContext 已经停止了。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:sparkStreaming的编程步骤-创新互联
当前地址:http://jkwzsj.com/article/picpi.html

其他资讯