首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

概识Spark 流处理

第8章 Spark Streaming

概识Spark 流处理

Spark Streaming 是Spark的流处理,是大数据处理的半壁江山,另一与之相对的一半是批处理。Spark Streaming的数据处理的实时性远远高于批处理。

为了达到些许图文并茂的效果,笔者决定带领您来看图理解,以下是Spark Streaming数据处理流程的图解:

图x 数据处理流程示意图

以上数据处理流程示意图从一定角度说明了数据从哪里来,又将要到哪里去。中间经历了何种酸甜苦辣的悲欢离合,最后为人类世界能够带来自身的价值。图中有3部分,对应3个关键点,分别如下:

(1)起源:诸如Kafka,Flume,HDFS/S3,Kinesis,Twitter等

(2)酸甜苦辣,悲欢离合:具体的算子,比如map, reduce, join,窗口操作等

(3)魂归何处:文件系统, 数据库, 实时指标板

值得关注的是,在整个经历酸甜苦辣的过程中,Spark Streaming 可以遇见像机器学习(Mlib),图计算(GraphX)等技能大咖,为整个数据处理算法旅程增色添彩。

流处理的核心数据集的抽象是DStream(discretized stream),它是连续数据流的一种代表,DStream内部其实是一系列的RDD,也可以理解为一个时间段连续的RDD组成的集合。是对RDD更高一层次的封装。

毫无疑问,Spark Streaming的API同时提供了 Scala, Java 和 Python三种语言,其中的Python是在1.2版本中增加的,这其中需要注意的是有一部分的Python API 滞后于Scala和Java,即Java或者Scala的部分API在Python中是没有的。之后,笔者会做有必要的说明。

quick example

在接下来的示例代码中,数据源是TCP,因此您需要简单了解一下TCP,整个原理的核心是数据通过网络在某端口进行传输,而开启传输模式的命令在Windows系统和Linuxs系统不一样,分别在命令行输入的命名如下:

以下是示例代码:

(1)创建SparkStreamingContext

(2)获取数据源(TCP)

(3)将行分割成单词

(4)计数并查看结果

(5)调用计数

您也可以快速的验证该示例的效果,直接在Spark的根目录下面执行如下的命令便可以运行示例代码的程序,如下所示:

我们在程序中添加Spark Streaming的依赖的时候通常会使用Maven这个工具,而Spark Streaming这个模块有自己单独的依赖信息,如下所示:

而Spark Streaming对于读写Kafka,Flume,Kinesis三种来源数据,没有对应的API,而是单独提供了各种独立的Maven依赖,其依赖信息分别为

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G0SVIN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券