Spark简介
- spark生态圈
- Sparkcore: 就是spark, 包含spark基本功能, 定义RDD的API和操作, 其他的spark库都是建立在sparkcore和RDD上. 相当于MR.
RDD是分布式数据集.
- Spark SQL: 提供了hive的SQL变种与spark交互的API.每一个数据库表被当成RDD, 将SQL转成spark操作.
- Spark Streaming: 实时数据流处理,经常和kafka一起使用.
- Mllib: 机器学习算法.
- Graphx: 用来图像处理的算法和工具.
Spark的基本架构,术语, 运行原理
- Application
- Driver
- ClusterManager: 资源管理器, 提供资源管理服务.
- Worker
- Executor: 运行在worker节点上的进程.
- Job: 多个task组成的并行运算.
- Stage: Job会拆分成多组task, 一组task就是taskset, 就是一个stage, 产生的依据就是依赖关系: 宽依赖和窄依赖, 是否有shuffle产生.
- Task: 就是运行在Executor进程中的任务.
RDD
RDD运行原理
Spark是以RDD的方式存在.是一个弹性分布式数据集.是基于分区的只读的记录.
- 高容错性
- 并行处理
RDD操作类型:
- Transformations: 从一个RDD产生另一个RDD
- Actions: 就是把RDD的操作结果返回给Driver
分区依赖
- 宽依赖
- 窄依赖
搭建
略
运行模式
- local –在IEA中测试用
- stanalone –Spark自带调度框架, 支持分布式搭建, 可以运行Spark任务
- yarn –hadoop生态圈中资源调度框架
- mesos –资源调度框架
API介绍
- Configuration
- 设置运行模式
- 设置webui中application名称
- 设置当前spark运行资源(内存+core)
spark word count
1 | //配置 |