Spark小结|青训营笔记

212 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

Spark简介

spark核心部分分为RDDSpark SQL、Spark Streaming、MLlib、GraphX、Spark R等核心组件解决了很多的大数据问题,其完美的框架日受欢迎。其相应的生态环境包括zepplin等可视化方面,正日益壮大。大型公司争相实用spark来代替原有hadoop上相应的功能模块。Spark读写过程不像hadoop溢出写入磁盘,都是基于内存,因此速度很快。另外DAG作业调度系统的宽窄依赖让Spark速度提高。

spark的工作机制

用户在client端提交作业之后,会有driver运行main方法创建spark context上下文,执行rdd算子,形成dag图并且进入dagScheduler,按照rdd之间的依赖关系划分stage输入task scheduler,task scheduler会讲stage划分task set分发到各个excutor上去执行。

Spark Streaming

通过对kafka数据读取,将Stream数据分成小的时间片段(几秒),以类似batch批处理的方式来处理这一部分小数据,每个时间片生成一个RDD,有高效的容错性,对小批量数据可以兼容批量实时数据处理的逻辑算法,用一些历史数据和实时数据联合进行分析,比如分类算法等。也可以对小批量的stream进行mapreduce、join等操作,而保证其实时性。针对数据流时间要求不到毫秒级的工程性问题都可以。

RDD(基石)

弹性分布式数据集,完全弹性的,如果数据丢失一部分还可以重建。有自动容错、位置感知调度和可伸缩性,通过数据检查点和记录数据更新金象容错性检查。通过SparkContext.textFile()加载文件变成RDD,然后通过transformation构建新的RDD,通过action将RDD存储到外部系统。

其他功能

  • Spark SQL: 类似hive,使用rdd实现sql查询
  • Spark Streaming: 流式计算,提供实时计算功能,类似storm
  • MLLib:机器学习库,提供常用分类,聚类,回归,交叉检验等机器学习算法并行实现。
  • GraphX:图计算框架,实现了基本的图计算功能,常用图算法和pregel图编程框架。