Spark的生态圈
1.Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成一套完整的生态系统
2.Spark可以部署在资源管理器YARN之上,提供一站式大数据解决方案
3.Spark所提供的的生态系统可对应以下三种场景:
复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间
基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
基于实时数据的数据处理:通常时间跨度在数百毫秒到数秒之间
4.Spark生态系统已经成为伯克利数据分析栈(BDAS)中重要的组成部分
5.Spark生态系统主要包括:
Spark Core
Spark SQL
Spark Streaming
MLlib
GraphX
Spark Core提供Spark最基础与最重要的功能,主要包括:
SparkContext:通常而言,Driver Application的执行与输出都是通过SparkContext来完成的,在正式提交Application之前,首先需要初始化SparkContext
只需要使用SparkContext提供的 API完成 功能开发
Spark Core中包含了对RDD的API定义
Spark Core提供了创建和操作这些集合的多个API
Spark SQL是Spark用来操作结构化数据的程序包
Spark Streaming
支持多种数据源 提供窗口操作
提供了操作数据流的API,并且与Spark Core中的RDD API高度对应
允许操作内存、硬盘数据和实时数据
大大降低了编写程序的门槛
MLlib
1.Spark MLlib包含了多种算法和工具
2.MLlib提供了多种机器学习算法:
分类:逻辑斯蒂回归、朴素贝斯,……
回归:广义线性回归、生存回归……
决策树、随机森林、梯度提升树等等
3.MLlib提供了多种工作流工具:
模型评估、超参数调整
数据导入等额外功能
4.MLlib还提供了一些更底层的机器学习原语,包括:
通用的梯度下降优化算法
支持在集群上扩展
GraphX
GraphX是Spark提供的分布式图计算框架
GraphX主要遵循整体同步并行计算模式
与Spark Streaming和Spark SQL类似,GraphX也扩展了Spark的RDD API
能够创建顶点和边都包含任意属性的有向图
GraphX还支持针对图的各种操作(比如进行图分割的subgraph和操作所有顶点的mapVerticecs)
支持常用图算法(比如PageRank和三角计数)
Spark的应用场景
1.spark能够一次处理PB级的数据,也可以分布在数千个协作的物理或虚拟服务器集群中,同时有一套广泛的开发者库和API,支持多种编程语言的灵活性特点,能够适合各种环境
2.Spark最常见的两种应用场景:
离线场景:可以以时间为维度,几年的数据集,或者以业务为维度,某个领域的大数据集等,这种数据我们一般叫做离线数据或者冷数据
实时场景:网站埋点、实时从前端页面传输过来的数据、业务系统或物理硬件实时传输过来的数据、硬件信号或者图像数据等,需要实时去计算处理并且返回结果的数据
来源:CSDN
作者:挽歌亽朽年
链接:https://blog.csdn.net/ghf183184/article/details/104341336