1.简介
Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰富的模型,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。 Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。
初步学习以后,SparkStreaming还是比较容易上手的,使用Spark Streaming的重心在数据流的处理上,接收数据流的工作,Spark Streaming都已经封装好了。Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据,其基本原理如图所示。
首先,SparkStreaming把实时输入数据流以时间片Δt (如1秒)为单位切分成块。Spark Streaming会把每块数据作为一个RDD,并使用RDD操作处理每一小块数据。每个块都会生成一个Spark Job处理,最终结果也返回多块。
Spark Streaming可以接收多种来源的数据,然后将数据存储到多种介质上。
2.简单使用
使用Spark Streaming,可以运行在yarn上,即运行在Sparkon Yarn模式上,也可以运行在原生Hadoop环境上。Spark On Yarn环境通常是使用CDH集成环境,网络上有很多搭建环境的教程,但搭建CDH需要的主机资源较多,在学习阶段,可以运行在原生Hadoop环境上,本教程讲述的是在Spark的StandAlone模式下运行的方法。下面一步步介绍一下环境的搭建过程。
2.1所需物品
两台Centos7服务器
Jdk 安装包
Scala rpm安装包
Spark 压缩包
2.2配置方法
2.2.1 安装JDK
首先检查系统的jdk信息,centos中默认安装了openjdk:
rpm -qa | grep java
然后根据查询结果将openjdk删除:
卸载OpenJDK,执行以下操作:
[root@localhost ~]# rpm -e --nodepstzdata-java-2014i