这是我参与「第四届青训营 」笔记创作活动的第 7 天!。
1、Spark(大数据处理引擎)介绍
(1)常见的大数据处理链路
(2)关于Spark
- Apache Spark是一个多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习
- 官网:spark.apache.org/
- github:github.com/apache/spar…
- 生态&特点:
- 统一引擎,支持多种分布式场景
- 多语言支持
- 可读性丰富数据源
- 丰富灵活的 API/算子
- 支持 K8S/YARN/Mesos
- 下载&编译
- 官网download:spark.apache.org/downloads.h…
- 编译:
- 官网download:spark.apache.org/downloads.h…
- spark 包概览:
- spark 提交命令
- 环境变量:
- 环境变量:
2、SparkCore
(1)关于RDD
- RDD(Resilient Distributed Dataset —— 弹性分布式数据集):表示可并行操作的不可变的分区元素集合
- 描述 RDD 五要素:
(2)RDD 操作
-
创建 RDD:
- 内置 RDD:
- 自定义 RDD:
- 内置 RDD:
-
RDD 算子
- Transform 算子:生成新的 RDD
- Action 算子:触发 job 提交
- Transform 算子:生成新的 RDD
-
RDD 依赖(描述父子 RDD 之间的依赖关系(lineage))
- 窄依赖:父 RDD 的每个 partition 至多对应一个子 RDD 分区
- 宽依赖:父 RDD 的每个 partition 都可能对应多个子 RDD 分区
- ShuffleDependency
- 窄依赖:父 RDD 的每个 partition 至多对应一个子 RDD 分区
-
RDD 执行流程
- job:RDD action 算子触发
- Stage:根据宽依赖划分
- Task:Stage 内执行单个 partition 任务