Spark 部分笔记一

1.Spark安装分为:Local(本地模式),Standalon(Spark独立集群模式),Yarn模式

2.Standalon模式 和 Yarn模式区别:

Standalon有自己独立的Master 和 Worker节点作为资源管理

Yarn模式使用Yarn中的ResourceManager 和 NodeManager进行资源管理

3.端口号:

Master 内部通信端口号:7077

Spark-shell 运行端口号:4040

Standalon 模式下,WEB-UI端口号:8080

Spark历史服务器:18080

Yarn运行情况:8088

4.Spark中组件主要分为Driver 和Excetor

5.Driver 主要作用:

将用户的程序转化为一个一个任务

跟踪excetor运行情况

在excetor间调度任务

6.Excetor 主要作用:

执行Driver分配的任务

向Driver 反馈任务执行情况

7.有向无环图

把任务和任务之间的联系用图形和线连起来,组成一个有方向,但是不能回连成环的图

8.Spark提交流程

用户运行main方法,Driver 会执行两个步骤:

1.会像Yarn申请资源

2.会把用户程序划分为任务,然后把任务task发给excetor

9.Yarn部署有两种模式,区别在于:Driver 的执行地方

1.client模式,Driver在提交程序的机器上执行

2.cluster模式,Driver在NodeManager上的ApplicationMaster上运行

10.Spark有三大数据结构

RDD

累加器

广播变量

11.RDD

RDD是Spark中一段数据处理逻辑,类似于java中的IO,字节流到字符流,应用了java中的装饰者设计模式,这个模式,只会包装逻辑,一层RDD包装一层RDD,简单逻辑组成复杂逻辑,但是只有在最后使用的时候才会执行这条计算链

特点:

存储的弹性:内存与磁盘存储切换

容错的弹性:数据丢失,可恢复

计算的弹性:计算出错,可以重试

分片的弹性:可以重新分片(分区)

RDD不保存数据,只是封装了计算逻辑,一个RDD不会改变,不会变化,计算只会产生新的RDD

可以分区,并行计算

12.RDD的属性

分区:分区可以让RDD 并行执行度,

分区计算:每个分区都会计算同样的逻辑

依赖关系:RDD都会存在依赖关系(多个RDD之间的依赖关系)

分区器

13.RDD的创建:

内存中makeRDD

textfile文件中

new

从一个RDD中

14.若不指定excetor的数量,那么默认是1,并且每个excetor中默认的core是1

15.在用内存中创建RDD的时候,可以指定分区数,也就是这个RDD计算逻辑时的并行度,若是不指定默认是当前执行机器的core数量,如果指定那么就是指定的数量的并行度

16.在用内存创建RDD的时候,数据会根据数据的长度和 并行度来确定数据分配在那个分区里

数据量是 n个,并行度指定是m个,那么第一个分区数据则是原始数据的(包头不包尾) (0*n/m,1*n/m] ,最后一个是((n-1)*n/m,n*n/m]

17.读取文件数据时,分区是:如果不传分区,min(2,当前机器的core),2和当前机器的core数取最小值,为最小分区数量,如果指定数量,那么指定的就是最小分区数,但这并不是最终的分区数

18.那么,Spark读取文件数据时,到底有多少分区呢?

安照文件的字节总大小total,每个分区包含字节数 total/partion,这就是每个分区的字节数量大小,如果有余数,如果余数大于 每个分区字节数的 10%,那么就分到一个新的分区,如果小于10%,那么归并到前一个分区

19.读取文件时,数据如何分配,通过偏移量分配数据。也是按字节量来分配,但是每行的换行也都占两个字节,但是每次都是读取一行的,(和hadoop中的mapreduce读取数据分区是一样的),比如第一个分区,需要读取total/partion 个字节,如果最后一个字节数不是这一行的末尾,那么这一行数据所有的都读到这个partion内,下一个分区,还是从 total/partion * 2(第二个分区),开始读,如果有部分数据在上一行中读到了第一个分区中,那么就往第二行开始读,直至读完total/parition

如果是读的目录,那么按总字节大小计算分区字节数,然后一个一个文件按标准来读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值