Spark从入门到精通33:Spark Streaming:大数据实时计算介绍

Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架。它的底层,其实,也是基于我们之前讲解的Spark Core的。基本的计算模型,还是基于内存的大数据实时计算模型。而且,它的底层的组件或者叫做概念,其实还是最核心的RDD。
只不过,针对实时计算的特点,在RDD之上,进行了一层封装,叫做DStream。其实,学过了Spark SQL之后,你理解这种封装就容易了。之前学习Spark SQL是不是也是发现,它针对数据查询这种应用,提供了一种基于RDD之上的全新概念,DataFrame,但是,其底层还是基于RDD的。所以,RDD是整个Spark技术生态中的核心。要学好Spark在交互式查询、实时计算上的应用技术和框架,首先必须学好Spark核心编程,也就是Spark Core。
这一节,作为Spark Streaming的第一节,我们先,给大家讲解一下,什么是大数据实时计算

实时数据的生产源头

现在企业中主要的实时数据产生的源头,有哪些呢?最基本的,是各大网站的,实时的用户行为日志(点击、购买等),淘宝、天猫、京东、搜狐、新浪。除此之外,比较热门的,还有其他的一些,比如实时金融系统、实时的舆情监控系统,接受的都是实时的金融交易数据,实时的社会上的一些舆论数据(微博、微信、博客等)。
实时数据,现在是大数据领域的一种非常热门的场景和应用,而且技术有相当的难度,应该比spark core以及MapReduce实现的离线批处理,以及hive和SparkSQL实现的大数据交互查询,比这两种场景要难一些。

消息中间件(kafka)

一般实时的数据,都是发送到消息中间件里面去的,比如,网站实时的点击,可以通过很多方式,传到消息中间件里,例如,我们经常点击一次,JavaScript脚本就发送一次ajax请求到后台的kafka。常见的,还有,例如Nginx日志,还有通过flume接受日志,然后灌到kafka里。现在企业中,实时计算领域,最常用的消息队列(消息中间件)就是kafka。
kafka的核心就是作为大数据的一种缓冲,否则大数据系统直接处理实时数据压力很大,会有挂掉的风险。但是要注意做大数据的实时处理,就必须要分布式,否则数据量太大,一点点处理要等很长时间。
kafka的消息来了如何处理:
我们自己编写的大数据实时处理程序,通常会去消息中间件实时拉取数据,实时拉取到了数据之后,其实我们自己编写的分布式程序就会用分布式的方式,来并行处理实时的大数据。每个节点可能就会处理一部分实时数据。这样,多个节点同时并行处理,就可以增强我们的大数据实时计算的能力,提高处理的速度。

实时处理

我们要做的就是开发分布式的实时大数据处理应用/系统,其实就是我们所说的Storm/Spark Streaming。基于平台提供的API开发app。
通常来说,我们都不会自己手动去开发基础的分布式实时计算平台/框架,而是使用现有的,优秀开源的框架/平台。比如Storm Spark Streaming。它们就是一种分布式实时计算平台,其进程,可以部署多个节点,从而进行大数据的分布式实时处理。而我们自己编写的基于某种平台的大数据实时计算程序,就会以并行的方式运行在这些平台之上。

你可能感兴趣的:(Spark从入门到精通33:Spark Streaming:大数据实时计算介绍)