本期内容:
1、Spark Streaming 动手实战演示
2、闪电般理解Spark Streaming原理
3、案例动手实战并在电光石火间理解其工作原理
流(Streaming),在大数据时代为数据流处理,就像水流一样,是数据流;既然是数据流处理,就会想到数据的流入、数据的加工、数据的流出。
日常工作、生活中数据来源很多不同的地方。例如:工业时代的汽车制造、监控设备、工业设备会产生很多源数据;信息时代的电商网站、日志服务器、社交网络、金融交易系统、黑客攻击、垃圾邮件、交通监控等;通信时代的手机、平板、智能设备、物联网等会产生很多实时数据,数据流无处不在。
在大数据时代Spark Streaming能做什么?
平时用户都有网上购物的经历,用户在网站上进行的各种操作通过Spark Streaming流处理技术可以被监控,用户的购买爱好、关注度、交易等可以进行行为分析。在金融领域,通过Spark Streaming流处理技术可以对交易量很大的账号进行监控,防止罪犯洗钱、财产转移、防欺诈等。在网络安全性方面,黑客攻击时有发生,通过Spark Streaming流处理技术可以将某类可疑IP进行监控并结合机器学习训练模型匹配出当前请求是否属于黑客攻击。其他方面,如:垃圾邮件监控过滤、交通监控、网络监控、工业设备监控的背后都是Spark Streaming发挥强大流处理的地方。
大数据时代,数据价值一般怎么定义?
所有没经过流处理的数据都是无效数据或没有价值的数据;数据产生之后立即处理产生的价值是最大的,数据放置越久或越滞后其使用价值越低。以前绝大多数电商网站盈利走的是网络流量(即用户的访问量),如今,电商网站不仅仅需要关注流量、交易量,更重要的是要通过数据流技术让电商网站的各种数据流动起来,通过实时流动的数据及时分析、挖掘出各种有价值的数据;比如:对不同交易量的用户指定用户画像,从而提供不同服务质量;准对用户访问电商网站板块爱好及时推荐相关的信息。
SparkStreaming VS Hadoop MR:
Spark Streaming是一个准实时流处理框架,而Hadoop MR是一个离线、批处理框架;很显然,在数据的价值性角度,Spark Streaming完胜于Hadoop MR。
SparkStreaming VS Storm:
Spark Streaming是一个准实时流处理框架,处理响应时间一般以分钟为单位,也就是说处理实时数据的延迟时间是秒级别的;Storm是一个实时流处理框架,处理响应是毫秒级的。所以在流框架选型方面要看具体业务场景。需要澄清的是现在很多人认为Spark Streaming流处理运行不稳定、数据丢失、事务性支持不好等等,那是因为很多人不会驾驭Spark Streaming及Spark本身。在Spark Streaming流处理的延迟时间方面,DT_Spark大数据梦工厂即将推出的Spark定制版本,会将Spark Streaming的延迟从秒级别推进到100毫秒之内甚至更少。
SparkStreaming优点:
1、提供了丰富的API,企业中能快速实现各种复杂的业务逻辑。
2、流入Spark Streaming的数据流通过和机器学习算法结合,完成机器模拟和图计算。
3、Spark Streaming基于Spark优秀的血统。
SparkStreaming能不能像Storm一样,一条一条处理数据?
Storm处理数据的方式是以条为单位来一条一条处理的,而Spark Streaming基于单位时间处理数据的,SparkStreaming能不能像Storm一样呢?答案是:可以的。
业界一般的做法是Spark Streaming和Kafka搭档即可达到这种效果,入下图:
Kafka业界认同最主流的分布式消息框架,此框架即符合消息广播模式又符合消息队列模式。
Kafka内部使用的技术:
1、 Cache
2、 Interface
3、 Persistence(默认最大持久化一周)
4、 Zero-Copy技术让Kafka每秒吞吐量几百兆,而且数据只需要加载一次到内核提供其他应用程序使用
外部各种源数据推进(Push)Kafka,然后再通过Spark Streaming抓取(Pull)数据,抓取的数据量可以根据自己的实际情况确定每一秒中要处理多少数据。
通过Spark Streaming动手实战wordCount实例
这里是运行一个Spark Streaming的程序:统计这个时间段内流进来的单词出现的次数. 它计算的是:他规定的时间段内每个单词出现了多少次。
1、先启动下Spark集群:
我们从集群里面打开下官方网站
接受这个数据进行加工,就是流处理的过程,刚才那个WordCount就是以1s做一个单位。
刚才运行的时候,为什么没有结果呢?因为需要数据源。
2、获取数据源:
新开一个命令终端,然后输入:
$ nc -lk 9999
现在我们拷贝数据源进入运行:
然后按回车运行
DStream和RDD关系:
没有输入数据会打印的是空结果:
但是实际上,Job的执行是Spark Streaming框架帮我们产生的和开发者自己写的Spark代码业务逻辑没有关系,而且Spark Streaming框架的执行时间间隔可以手动配置,如:每隔一秒钟就会产生一次Job的调用。所以在开发者编写好的Spark代码时(如:flatmap、map、collect),不会导致job的运行,job运行是Spark Streaming框架产生的,可以配置成每隔一秒中都会产生一次job调用。
Spark Streaming流进来的数据是DStream,但Spark Core框架只认RDD,这就产生矛盾了?
Spark Streaming框架中,作业实例的产生都是基于rdd实例来产生,你写的代码是作业的模板,即rdd是作业的模板,模板一运行rdd就会被执行,此时action必须处理数据。RDD的模板就是DStream离散流,RDD之间存在依赖关系,DStream就有了依赖关系,也就构成了DStream 有向无环图。这个DAG图,是模板。Spark Streaming只不过是在附在RDD上面一层薄薄的封装而已。你写的代码不能产生Job,只有框架才能产生Job.
如果一秒内计算不完数据,就只能调优了.
编写人:IMF-Spark Steaming企业级开发实战小组
主编辑:王家林
备注:
资料来源于:DT_大数据梦工厂(IMF传奇行动绝密课程)
更多私密内容,请关注微信公众号:DT_Spark
如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580
分享到:
相关推荐
2.理解Spark Streaming的工作原理。 3.学会使用Spark Streaming处理流式数据。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内容 (一)Spark Streaming处理套接字流 1:编写...
大数据处理框架:Spark:Spark Streaming实时数据处理.docx
在第一个例子中,我们将监控指定目录,并处理该目录下的新文件。在这个例子中,我每次上传一个新 word_序号文件到 HDFS 检测目录下。运行结果:每次重新统计新增文件的单词频次。 在第二个例子中,我们将监控指定...
### Spark Streaming原理与实战 #### 一、Spark Streaming概述 **Spark Streaming** 是Apache Spark生态中的一个重要组件,它主要用于处理实时数据流。相比于传统的批处理技术,Spark Streaming提供了对实时数据流...
- **集成能力**:Spark Streaming的一个显著优势在于它可以无缝地运行在Spark平台上,这意味着开发者可以使用同一套代码来处理批处理任务和实时流数据。此外,Spark Streaming还能与其他Spark模块(如Spark SQL、...
Spark Streaming是中国大数据技术领域中广泛使用...通过这个Spark Streaming实时流处理项目实战,你将有机会实践以上知识,并进一步理解如何在实际场景中部署和调整Spark Streaming,提升实时数据处理的效能和稳定性。
在2016年的中国云计算技术大会(CCTC)上,腾讯公司的高级软件工程师林立伟进行了题为“Spark Streaming在腾讯广点通的应用”的主题演讲。林立伟深入探讨了腾讯广点通(Tencent SocialAds)如何应用Apache Spark ...
1. 微批处理:Spark Streaming通过DStream(Discretized Stream)抽象,将连续的数据流转换为一系列离散化的批次数据,每个批次数据可以被快速处理。这种方式简化了实时流处理的复杂性,同时保持了低延迟。 2. 持续...
Apache Spark Streaming是Apache Spark用于处理实时流数据的一个组件。它允许用户使用Spark的高度抽象概念处理实时数据流,并且可以轻松地与存储解决方案、批处理数据和机器学习算法集成。Spark Streaming提供了一种...
在本章"Python3实战Spark大数据分析及调度-第9章 Spark Streaming"中,我们将深入探讨Apache Spark的实时处理框架——Spark Streaming。Spark Streaming是Apache Spark的一个重要组件,它允许开发人员以微批处理的...
- **编程模型**:Spark Streaming 基于 DStream(Discretized Stream)模型,将流分割成一系列微小的批处理;而 Storm 使用了更加底层的基于 Tuple 的流处理模型。 - **容错机制**:Spark Streaming 利用 Spark 的...
在"大数据技术原理及应用课实验7:Spark初级编程实践"中,我们主要关注Spark的两个核心知识点:数据读取和Spark应用程序的开发流程。 首先,Spark提供了一种简单的方式去访问不同的数据源,包括本地文件系统和...
通过阅读《图解Spark核心技术与案例实战》,读者不仅能深入理解Spark的工作原理,还能掌握如何在实际项目中有效使用Spark,提升大数据处理和分析的能力。书中的实例和详尽解释将为初学者和经验丰富的开发者提供宝贵...
Spark 2.3.x Streaming是Apache Spark的一部分...通过这个项目,你将学习如何设置和运行一个Spark Streaming应用,理解其核心概念,以及如何针对特定场景进行实时数据分析。实践是检验理论的最好方式,所以动手尝试吧!
Spark Streaming预研报告覆盖了Apache Spark Streaming的主要方面,包括其简介、架构、编程模型以及性能调优。以下是基于文档提供内容的详细知识点: 1. Spark Streaming简介与渊源 Spark Streaming是Spark生态中...
### Spark Streaming原理与实践 #### 一、为什么需要流处理? 传统的批处理框架如MapReduce在处理实时数据流时存在一些局限性,主要是因为每次处理一批数据就需要启动一个新任务,而任务的启动过程(包括输入切分...
- **离散流(Discretized Stream)或 DStream**:Spark Streaming 中的核心概念之一,代表了一个连续不断的实时数据流。DStream 实质上是一个有序的 RDD 序列,每个 RDD 包含了在特定时间区间内收集的数据。 - **批...
在大数据处理领域,Spark作为一款高效、通用的计算框架,被广泛应用在数据分析、机器学习等多个场景。本项目涉及的核心知识点包括Spark Core、Spark SQL和Spark Streaming,同时结合了Scala和Java编程语言,以及...