* SparkStreaming基础

打开之前构建好的Maven工程,如何构建?请参看SparkCore基础(二)的最后部分。

在SparkCore中,我们操作的数据都在RDD中,是Spark的一个抽象概念,也是一个抽象类,是由SparkContext对象sc转换得到的。

那么在SparkStreaming中,我们使用的Spark的StreamingContext对象,简称ssc。

我们本节内容以动手为基础,直接开始一些测试案例:具体的框架结构请参看官方文档,写的非常之详细。

SparkStreaming在Windows中使用IDEA的开发案例

WordCount在IDEA工具

首先导入相关依赖:

 
 

代码如下:

 
 

SparkStreaming与Kafka在IDEA工具

我们可以使用Flume+Kafka将数据实时转入到SparkStreaming分析进行分析,因为Flume和Kafka的集成在之前的章节中已经讲解过,所以此时只讲述如何将Kafka与SparkStreaming进行集成,首先导入依赖:

 
 

代码如下:注意红框内容

 
 

然后启动Kafka的相关服务:

启动Kafka Broker节点

$ bin/kafka-server-start.sh config/server.properties

创建Topic

$ bin/kafka-topics.sh --create --zookeeper z01:2181 --replication-factor 1 --partitions 1 --topic SparkTopic

查看一下有几个Topic

$ bin/kafka-topics.sh --list --zookeeper z01:2181

发布数据

$ bin/kafka-console-producer.sh --broker-list z01:9092 --topic SparkTopic

开启一个控制台消费者用于验证

$ bin/kafka-console-consumer.sh --zookeeper z01:2181 --topic SparkTopic --from-beginning

SparkStreaming统计录入的所有数据

你会发现之前我们统计的单词每过几秒都是新的统计,并没有把每次流入的数据进行汇总统计,那么,我们此时的目标是,你懂得:)

使用updateStateByKey将相同Key的数据的state状态进行汇总,顺便一提:hadoop,1里面的1其实就是一个state,之前我们也一直称之为count对吧,思维要扭转一下,毕竟,不是所有的数据分析统计都只是简单的加减乘除,用状态来描述,也是可以的。

统计实时的最新状态,代码如下:

 
 

SparkStreaming统计某一个时间范围内的所有数据

我们需要使用windows窗口滑动这样一个概念,比如,设定一个窗口的大小为30秒,每次我们统计的都是最近30秒的数据汇总,将Window窗口一直向某一个方向滑动,一次滑动指定的距离,进行统计即可,其实一个Window就好比是框住了一定范围时间内的batch,SparkStreaming默认将200ms的数据分为一个batch(可以暂且理解为一个数据块)

统计最近一段时间的状态,代码如下:

 
 

Spark与HBase的集成

首先导入HBase的相关依赖:

 
 

从HBase中读取数据,代码如下:

 
 

* 总结

通过一些常用的案例,你应该能够掌握SparkStreaming运行的基本原理和架构模型了,Spark的官方文档特别的相信,源码注释也非常详细,如有不太理解的地方,直接看源码和官方文档是最好的途径。


个人微博:http://weibo.com/seal13

QQ大数据技术交流群(广告勿入):476966007


作者:Z尽际
链接:https://www.jianshu.com/p/3f046697159c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

SparkStreaming基础的更多相关文章

  1. SparkStreaming wordCountDemo基础案例

    体现sparkStreaming的秒级准实时性,所以我们需要一个能够持续输入数据的东东 1.CentOS上下载nc 创建一个scala工程,导入相关pom依赖 <?xml version=&qu ...

  2. Spark Streaming揭秘 Day6 关于SparkStreaming Job的一些思考

    Spark Streaming揭秘 Day6 关于SparkStreaming Job的一些思考 Job是SparkStreaming的重要基础,今天让我们深入,进行一些思考. Job是什么? 首先, ...

  3. SparkStreaming流处理

    一.Spark Streaming的介绍 1.       流处理 流式处理(Stream Processing).流式处理就是指源源不断的数据流过系统时,系统能够不停地连续计算.所以流式处理没有什么 ...

  4. SparkStreaming基本架构及使用

    1.简介 Spark Streaming处理的数据流图: Spark Streaming在内部的处理机制是,接收实时流的数据,并根据一定的时间间隔拆分成一批批的数据,然后通过Spark Engine处 ...

  5. 基于Java+SparkStreaming整合kafka编程

    一.下载依赖jar包 具体可以参考:SparkStreaming整合kafka编程 二.创建Java工程 太简单,略. 三.实际例子 spark的安装包里面有好多例子,具体路径:spark-2.1.1 ...

  6. spark基础知识介绍(包含foreachPartition写入mysql)

    数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多.进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输.在spar ...

  7. 【大数据】SparkStreaming学习笔记

    第1章 Spark Streaming概述 1.1 Spark Streaming是什么 Spark Streaming用于流式数据的处理.Spark Streaming支持的数据输入源很多,例如:K ...

  8. 【Spark】SparkStreaming-Kafka-Redis-集成-基础参考资料

    SparkStreaming-Kafka-Redis-集成-基础参考资料 Overview - Spark 2.2.0 Documentation Spark Streaming + Kafka In ...

  9. 【sparkStreaming】SparkStream的创建

    DStream编程数据模型 DStream(Discretized Stream)作为Spark Streaming的基础抽象,它代表持续性的数据流. 这些数据流既可以通过外部输入源赖获取,也可以通过 ...

随机推荐

  1. 显示解析svg

    g公司代码显示svg: SVGParserRenderer drawable = new SVGParserRenderer(context, String svgContent); String s ...

  2. Javascript防冒泡事件与Event对象

    防冒泡 防冒泡用到的就是event的属性和方法 function add2shop(e) { if (!e) var e = window.event; e.cancelBubble = true; ...

  3. iOS (封装)一句话调用系统的alertView和alertController

    前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将 ...

  4. m_Orchestrate learning system---十五、如何快速查错

    m_Orchestrate learning system---十五.如何快速查错 一.总结 一句话总结: a.删除代码法 b.添加提示代码法 c.仔细看错误信息 1.评论板块和论坛板块的实时更新? ...

  5. 搞笑OI

    OI难 噫吁嚱,维护难哉!OI之难,难于上青天!哈希及DP,代码何茫然!尔来一千两百A,不见金牌背后难.西当华师有考场,可以横绝CN巅.编译不过壮士死,然后超时爆内存相钩连.上有自主招生之高标,下有由 ...

  6. BOOL的getter方法

    在代码中经常会看到这样的属性声明 @property (nonatomic,assign,getter = isRead)BOOL read; 这行代码的意思就是,声明一个BOOL类型的read,但是 ...

  7. [nginx]第一篇

    世界太大,我无法安心学习,决定看一个简单的. nginx-1.11.9的代码是nginx-0.5.38的两倍,决定看前者的. 阅读工具:UnderStand 3.1. 入口在nginx.c的195行. ...

  8. NPInter数据集的奇葩标号的出坑秘籍

    这篇恐怕是有始以来命名最无奈标题了.需要写一下攻略. 业内人士都熟知NPInter,但是该数据库一直以来访问受限.不过终于能访问得到数据集. 但是蛋疼的是2.0的数据库id的命名方法实在奇葩,想了很多 ...

  9. (转载)android控件之WebView控件缩小

    android控件之WebView控件缩小 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-16我要评论 发现这个控件挺好用,能自已控制进度条,而且这个控件的功能非常壮大,先上个简单的 ...

  10. (转载) Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题

    Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题 标签: scrollviewandroid滑动嵌套 2015-07-16 17:24 1112 ...