关于 Spark 及 SparkCore | 青训营笔记

55 阅读1分钟

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

1、Spark(大数据处理引擎)介绍


(1)常见的大数据处理链路

image.png

(2)关于Spark

  • Apache Spark是一个多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习 image.png
  • 官网:spark.apache.org/
  • github:github.com/apache/spar…
  • 生态&特点: image.png
    • 统一引擎,支持多种分布式场景
    • 多语言支持
    • 可读性丰富数据源
    • 丰富灵活的 API/算子
    • 支持 K8S/YARN/Mesos image.png
  • 下载&编译
  • spark 包概览: image.png
  • spark 提交命令
    • 环境变量: image.png

2、SparkCore


image.png image.png

(1)关于RDD

  • RDD(Resilient Distributed Dataset —— 弹性分布式数据集):表示可并行操作的不可变的分区元素集合 image.png
  • 描述 RDD 五要素: image.png

(2)RDD 操作

  • 创建 RDD:

    • 内置 RDD: image.png
    • 自定义 RDD: image.png
  • RDD 算子

    • Transform 算子:生成新的 RDD image.png
    • Action 算子:触发 job 提交 image.png image.png
  • RDD 依赖(描述父子 RDD 之间的依赖关系(lineage)) image.png

    • 窄依赖:父 RDD 的每个 partition 至多对应一个子 RDD 分区 image.png
    • 宽依赖:父 RDD 的每个 partition 都可能对应多个子 RDD 分区
      • ShuffleDependency
  • RDD 执行流程 image.png

    • job:RDD action 算子触发
    • Stage:根据宽依赖划分
    • Task:Stage 内执行单个 partition 任务