【博学谷学习记录】超强总结,用心分享 | spark基础了解

【博学谷IT技术支持】
Spark 是一款用于大规模数据处理分析式的分布引擎

MR的弊端:

  • 计算效率慢
  • 使用API相对比较低级
  • 迭代计算非常不方便

什么是迭代计算:

  • 在计算过程中,需要将计算划分为N个阶段,每个阶段直接互相依赖,后 一个阶段必须等待前一个阶段执行完成,然后才能执行后一个阶段

SparK效率优于MR的原因:

Spark提供全新的数据结构:RDD支持在内存中进行计算,部分迭代操作支持内存迭代
Spark程序是基于线程来运行的,而MR是基于进程来运行的,线程的启动和销毁是优于进程的

发展历史:

  • 2009出现
  • 14年称为顶级项目
  • 16年2.0
  • 19年3.0

Spark的特点

  • 运行速度快
  • 易用性
  • 通用性
Spark是由多个组件组成,主要有Spark Core, Spark SQL, Spark Streaming, Spark MLib, Spark Graphx

spark Core: Spark的核心,学习spark的基础,学习spark Core主要学习RDD主要维护RDD数据结构
    提供RDD各种API
    提供了与内存相关的API
  
Spark SQL: 通过SQL的方式来操作Spark

Spark streaming:Spark用于进行流式计算(实时计算)的组件 暂不学习在国内,整个实时部分,主要是应用在F1ink,而非Spark Streaming ,因为Spark的流并不是真正意义上流式计算,为微批处理

Spark MLib: Spark用于进行机器学习的库专门针对特定人群

Spark Graphx: Spark用于进行图计算的库专门针对特定人群
  • 随处运行

Spark 是一个主从分布式高可用集群框架

主节点:
    管理众多的从节点
    负责资源的分配管理
    负责接收客户端提交任务请求,负责分配Dirver程序启动在那个从节点上
    
从节点:
    1- 和主节点保持心跳,汇报自己的资源信息
    2- 负责接收Driver分配的任务,进行任务的执行
    3- 负责启动Driver程序


1- Spark集群架构:  是一个主从分布式高可用集群架构
2- 明确集群中主 从节点的作用
3- 明确主节点是如何基于zk实现主备切换: 临时节点 + 定时检测

spark-submi执行方式

./spark-submit --master local[*]
/export/data/workspace/ky06_pyspark/_01_SparkBase/src/_05_pyspark_wd.py
Driver进程:类似于 MR中 ApplicationMaster
主要负责:任务的资源申请,任务分配 任务进度的管理,等 基本与任务相关的工作 都是交给Driver来处理

Executor程序:执行器(理解为是一个线程池)spark最终执行的线程都是运行在executor上,executor是可以有多个的,每个里面都是可以有多个线程的

Spark-Submit的相关参数

// 表示应用运行的模式
--master
表示运行的地方
--deploy-mode

Spark Core

核心: 采用多节点处理,将一个任务拆分为N多个子任务,分布运行在不同的节点上进行并行的处理,各个节点计算完成后,将结果汇总处理即可。

RDD是一个抽象的数据模型,RDD本身并不存储任何的数据,仅仅是一个数据传输的管道,在这个管道中,作为使用者,只需要告知给RDD应该从哪里读,中间需要进行什么样的转换逻辑操作,以及最后需要将结果输出到什么位置即可,一旦启动后,RDD会根据用户设定的规则,完成整个处理操作

RDD的五大特性和五大特点

五大特性

1- (必须的) RDD可分区的
2- (必须的) 每一个RDD都是由一个计算函数产生的
3- (必须的)RDD之间是存在着依赖关系
4- (可选的) 对于KV类型的数据,是存在分区函数,对于KV类型的RDD默认是基于Hash 分区方案
5- (可选的) 移动数据不如移动计算(让计算程序离数据越近越好)
posted @ 2023-02-05 23:01  牛牛牛牛牛牛牛牛  阅读(42)  评论(0编辑  收藏  举报