大数据实战(3)---实时流处理:Spark Streaming
1.概述
1)可扩展、高吞吐量、容错的
2)将不同数据源数据经过Spark Streaming处理,将处理结果输出到外部文件系统
特点:低延时、能从错误中高效的恢复:fault-tolerant、能够运行在成百上千的节点、能够将批处理、机器学习、图计算等子框架和Spark Streaming综合使用。
2.核心组件
基于Spark Core(离线处理)=>1)Spark Steaming 流处理
2)GraphX 图形处理
3)MLlib 机器学习
4)SparkSQL SQLAPI
(PS :
RDD:弹性分布式数据集,Spark中最基本的数据抽象(不可变、可分区的集合)
特点:自动容错、位置感知性调度和可伸缩性
)
*Spark Core 与 Spark Steaming 计算代码基本一致,可以无缝衔接
*Spark-submit:提交(生产使用)
Spark-shell:提交(测试使用,不用打jar包)
3.工作原理
1.粗粒度:Spark Streaming把接收的数据按时间段,切成一片片小的数据块,把小的数据块交给Spark Engine处理
2.细粒度:
4.核心概念
1)Streaming Context(上下文),传conf及batch interval(处理间隔时间)
2)DStream:代表一系列不断的RDD
3)Input Dstreams:从源头接受过来的流
Receivers:接收Input Dstreams(除了file Steam(文件系统))
4)TransFormations:修改来自Input DStream的数据保存为Input DStream(通RDDS)
5)Output Operations:将DBstream写入到外部dataBase or file systems
Spark Steams处理文件系统注意事项:
1)使用ssc.socketTextSteam(...)读取
2)文件相同的数据格式
3)嵌套、子目录的不支持
4)文件移动或重命名,不可以在已有文件下添加(新加的不会被处理)