学习资源
- https://github.com/JerryLead/SparkInternals
- http://marsishandsome.github.io/SparkSQL-Internal/
- https://www.bilibili.com/video/BV11A411L7CK/?vd_source=a06e7ddea507bcc3516662eafe9d0787
学习笔记
- spark是与hadoop相似的开源集群计算框架。
- spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎,没有存储
- spark由scala语言开发
- spark是基于内存的数据操作
- spark core提供了spark最基础与最核心的功能
- spark sql是spark用来操作结构化数据的组件,通过使用spark sql,用户可以使用sql或者apache hive版本的sql方言(hql)来查询数据。
- spark streaming是spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的api。
- 一次性数据计算:框架在处理数据的时候,会从存储设备中读取数据,进行逻辑操作,然后将处理的结果重新存储到介质中。
- spark可以基于内存进行数据集的多次迭代
- spark是一个分布式数据快速分析项目,它的核心技术是弹性分布式数据集(Resilient Distributed Datasets),提供了比MapReduce丰富的模型,可以快速在内存中对数据集进行多次迭代,来支持复杂的数据挖掘算法和图形计算算法。
- spark和hadoop的根本差异是多个作业之间的数据通信问题:spark多个作业之间数据通信基于内存,而hadoop是基于磁盘。
- spark可能会由于内存资源的不足导致job执行失败,所以spark并不能完全代替MapReduce
- spark core是整个spark框架的核心
- spark sql是spark操作结构化数据的模块
- spark streaming是spark处理流式数据的模块
- spark MLlib是处理机器学习功能的模块
- SparkConf/SparkContext
local模式运行原理