Spark入门小结

Spark

RDD(resilient distributed dataset):RDD是Spark对分布式数据和计算的基本抽象。

spark会自动将函数发到各个执行器节点上,这样,你就可以在单一的驱动器程序中编程,并且让代码自动运行在多个节点上。

A.快速入门

1.创建方式:
1.1 读取外部数据集
1.2 在驱动器程序中对一个集合进行并行化

2.RDD支持两种操作
2.1 转化操作  返回仍然是RDD
2.2 行动操作  其他的数据类型

转化出来的RDD是惰性求值,只有在行动操作中用到这些RDD时才会被计算。
操作不会立即被执行。相反,Spark会在内部记录所要求执行的操作的相关信息。

常见转化操作和行动操作

map/flatmap/filter/distinct/sample/union/intersection/subtract/cartesian

reduce:操作两个相同元素类型的RDD数据并返回一个相同类型的新元素。 => 计算出RDD中所有元素的总和,元素的个数,以及其他类型的聚合操作。


键值对RDD通常用来进行聚合计算。

起因:Spark许多操作都引入将数据根据键跨节点进行混洗的过程。
spark.Partitioner对象,本质上是一个告诉我们RDD中各个键分别属于哪个分区的函数。
如果不调用persist,后续RDD操作会对partitioned整个谱系重新求值。

Spark会根据文件扩展名选择对应的处理方式。
SequenceFile:由没有相对关系结构的键值对文件组成的常用Hadoop格式。

累加器:对信息进行聚合。
广播变量: 高效分发较大的对象。
Spark驱动器是执行程序中的main()方法的进程。
累加器的值只有在驱动器程序中可以访问。
广播变量:可以让程序高效地向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。

Spark驱动器职责:
1.把用户程序转为任务:Spark驱动器程序负责把用户程序转为多个物理执行的单元。这些单元被称为任务。
2.为执行器节点调度任务。

Spark执行器节点是一种工作进程,负责在Spark作业中运行任务,任务之间相互独立。

Spark为各种集群管理器提供了统一的工具来提交作业,这个工具是spark-submit。
spark-submit提供各种选项:1.调度信息,比如你希望为作业申请的资源量。 2.应用的运行时依赖,比如需要部署到所有工作节点上的库和文件。

Hadoop Yarn 它可以让多种数据处理框架运行在一个共享的资源池上,通常安装在与Hadoop文件系统相同的物理节点上。

流水线操作:在物理执行时,执行计划输出的缩进等级与其父节点相同的RDD会与其父节点在同一个步骤中进行流水线执行。
混洗数据(shuffle):它是为了跨分区进行不同的分组的一种重新分配数据的Spark机制。

Spark页面详情:
A.Jobs页面:包含正在进行的或刚完成不久的Spark作业的详细执行情况。
important:正在运行的作业,步骤以及任务的进度情况。
B.Stages:步骤详情页面:用来定位性能问题,查看具体的哪个步骤的相关信息
C.Storage:已缓存的RDD的信息
D.Executors:应用中的执行器进程列表:列出应用中申请到的执行器实例,以及各执行器进程在数据处理和存储方面的一些指标。
执行器页面另外一个功能是使用线程转存按钮收集执行器进程的栈跟踪信息。
E.Environment:用来调试Spark配置项
RDD的逻辑表示其实就是一个对象集合。每个分区就是整个数据的子集,Spark会为每个分区中的数据创建出一个任务。
数据混洗后的RDD派生下来的RDD会采用和其父RDD相同的并行度。

比如:filter后产生很多空的分区或者只有少量数据的分区,需要通过合并得到分区更少的RDD来提高应用性能。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值