1. 请简述Spark的工作原理和架构?
- 基于RDD,一种数据结构,含数据项、处理函数、血缘。
- spark解析任务,生成rdd,并将系列rdd转换成一系列物理计划,然后发送到集群上的各个节点执行。
- spark负责管理这些任务,并分配到集群中的各个执行器,利用分区存储副本实现容错
2. Spark与Hadoop MapReduce相比,主要有哪些优势?
- 速度快 (1.基于内存计算 2.spark更灵活,job数更少)
- 易用性,支持多种编程语言 scala java python R
- 功能更强大 ,可以做批处理、准实时处理、机器学习和图计算
3. Spark有哪几种运行模式?请详细解释它们之间的区别。
spark local 、 spark on mesos、spark standalone、 spark on yarn
Local mode: 在本地模式下,spark作业在单个机器上运行,通常用于开发和测试
Standalone: spark使用自己的集群管理器来调度作业
yarn模式:yarn是hadoop的资源管理器,spark可以运行在yarn之上
mesos模型:mesos是一个开源的资源管理器和资源调度器
kubernetes:Kubernetes是一个容器编排平台,Spark可以利用Kubernetes来部署和运行
4. Spark的RDD(弹性分布式数据集)是什么?它有哪些特性?
rdd:抽象数据结构,也是spark最小的计算单元,含数据分区、数据项、转换函数、rdd血缘、 (但并不会存储数据)
特性:
- rdd有多个分区构成
- 对rdd的每个分区做计算
- rdd之间有依赖关系,可以溯