Spark学习之Spark Streaming(9)

1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码。

2. Spark Streaming使用离散化(discretized steam)作为抽象表示,叫做DStream。DStream是随时间推移而收到的数据的序列。

3. DSteam支持两种操作:转换操作(transformation),会生成一个新的DStream;另一种是输出操作(output operation),可以把数据写入到外部系统中。

4. Spark Stream的简单例子

需求:使用maven或者sbt打包编译出来独立应用的形式运行。从一台服务器的7777端口接受一个以换行符分隔的多行文本,要从中筛选出包含单词error的行,并打印出来。

    //Maven 索引groupID = org.apache.sparkartifactID = spark-steaming_2.10version = 1.2.0
    //Scala流计算import声明import org.apache.spark.streaming.StreamingContextimport org.apache.spark.streaming.StreamingContext._import org.apache.spark.streaming.dstream.DStreamimport org.apache.spark.streaming.Durationimport org.apache.spark.streaming.Seconds//用Scala进行流式筛选,打印包含“error”的行//从SparkConf创建StreamingContext并指定1秒钟的处理val ssc = new SteamingContext(conf,Seconds(1))//连接到本地机器7777端口上后,使用收到的数据创建DStreamval lines = ssc.socketTextStream("localhost",7777)//从DStream中筛选出包含字符串“error”的行val errorLines = lines.filter(_.contains("error"))//  打印拥有“error”的行errorLines.print()//用Scala进行流式筛选,打印出包含“error”的行ssc.start()//等待作业完成ssc.awaitTermination()
注意:一个Streaming context只能执行一次,所以只有在配置好所有DStream以及所需要的输出操作之后才启动。最后:在Linux/Mac操作系统上运行流计算应用并提供数据
    $spark-submit --class com.oreilly.learningsparkexamples.scala.streamingLogInput \$ASSEMBLY_JAR local[4]$ nc localhost 7777 # 使你可以键入输入的行来发送给服务器 
Windows nc命令对应ncat

5. DStream 的转化操作可以分为两种:无状态(stateless)转化操作和有状态(stateful)转化操作。

5.1无状态转化操作中,每个批次的处理不依赖于之前批次的数据。
例如map()、filter()、reduceByKey()等。
5.2有状态转化操作中,需要使用之前批次的数据或者中间结果来计算当前批次的数据。
有状态转化操作包括基于滑动窗口的转化操作和追踪状态变化的转化操作。

6. 输出操作

输出操作指定了对数据经转化操作得到的数据所要执行的操作(例如把结果输出推入外部数据库或输出到屏幕上)。

7. 输入源包括:核心数据源、附加数据源、多数据源与集群规模。

8. Steaming用户界面http://localhost:4040可以查看运行详细信息。

转载于:https://www.cnblogs.com/lanzhi/p/6467784.html

Spark学习之Spark Streaming(9)相关推荐

  1. Spark学习之Spark调优与调试(7)

    Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...

  2. Spark学习之Spark初识

    一.什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Had ...

  3. Spark学习之Spark Streaming

    一.简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用,还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它 ...

  4. Spark学习笔记 --- Spark Streaming 与 Stom 比较

    对比点 Storm

  5. Spark学习之Spark RDD算子

    个人主页zicesun.com 这里,从源码的角度总结一下Spark RDD算子的用法. 单值型Transformation算子 map /*** Return a new RDD by applyi ...

  6. Spark学习之spark集群搭建

    (推广一下自己的个人主页 zicesun.com) 本文讲介绍如何搭建spark集群. 搭建spark集群需要进行一下几件事情: 集群配置ssh无秘登录 java jdk1.8 scala-2.11. ...

  7. Spark学习:spark读取HBase数据报异常java.io.NotSerializableException

    1.准备工作,安装好HABSE之后,执行Hbase shell create '表名称', '列名称1','列名称2','列名称N' create '表名称','列族名称' 在hbase中列是可以动态 ...

  8. sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)

    本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容. 第一部分内容见: S ...

  9. spark 学习笔记

    spark 学习笔记 spark介绍 Spark是是一种快速通用的集群计算系统,它的主要特点是能够在内存中进行计算.它包含了 spark 核心组件 spark-core,用于 SQL 和结构化处理数据 ...

最新文章

  1. 如何在AngularJS的ng-options中设置value属性?
  2. [漫画]~RAGNAROK~(I部II部.全收入)
  3. Circle-Progress-View
  4. LintCode解题目录
  5. 使用webpack、babel、react、antdesign配置单页面应用开发环境
  6. 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读
  7. 小米MIX 4支持UWB技术:实现设备间无感定向传输和操控
  8. Active Directory 灾难恢复
  9. Linux DRM KMS 驱动简介
  10. Python3.6 安装pandas包的方法
  11. 产品经理必修30本书
  12. Windows虚拟内存不足问题的处理
  13. Ubuntu14.04安装GNOME3桌面
  14. 设置了普通密码的excel打不开怎么办
  15. RobotFramework-关键字-Wait Until Keyword Succeeds
  16. date类型在日期增加或者减少几天
  17. 新手学Python之学习官网教程(五: Data Structures)
  18. vscode CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.解决
  19. asp毕业设计—— 基于asp+access的企业人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
  20. 从信息流到搜索,今日头条要跨越几重山?

热门文章

  1. mysql为什么总是错的_这个mysql如何总是错的
  2. ui li 菜单 点击添加下级_如何制作导航栏中的下拉菜单
  3. Twitter高并发高可用架构
  4. MongoDB 基本命令
  5. 如何在 Ubuntu 14.04 里面配置 chroot 环境
  6. 在jquery的ajax方法中的success中使用return要注意的问题
  7. Squid服务器配置
  8. spring REST中的内容协商(同一资源,多种展现:xml,json,html)
  9. Part 3 —— 发布 Go Modules
  10. pojo类中的布尔类型的变量为什么不能加is