1–Spark的子项目
SparkCore:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复与存储系统交互等模块。SparkCore中还包含了对弹性分布式数据集RDD的API定义
SparkSql:是Saprk用来操作结构化数据的程序包,通过SparkSql可以使用SQL或者Hive版本的SQL语言来查询数据,支持多种数据源,例如hive,parquet以及json等
SparkStreaming:是Spark提供的对实时数据进行流式计算的组件,是用来操作数据流的API,并且与SparkCore中的RDD API高度对应
SparkMlib:提供常见的机器学习功能的程序库,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能
集群管理器:Spark设计可以高效的在一个计算节点到数千个计算节点之间伸缩计算,spark支持在各种集群管理器上运行,包括hadoop yarn,apache mesos等
2–Spark与Hadoop对比
Spark可以替代Hadoop的一部分,也就是Hadoop的计算框架MapReduce,Hive查询引擎,Spark本身不提供大数据的存储,Hadoop架构中的HDFS的大数据存储,Hbase的Nosql,Yarn的资源管理调度室Spark无法替代的
Mapreduce的基本计算过程,shuffle先要将数据写入磁盘,然后通过网络去磁盘上读取大量的数据,包括网络传输,shuffle以及MapReduce的计算模型就决定了Mapreduce只适合处理速度不敏感的离线批处理任务
Spark将job划分成多个stage,基于内存就行操作。由于基于内存可能会出现各种各样的问题 例如OOM
1spark初了解
最新推荐文章于 2022-08-24 14:55:55 发布