spark java 计算_一文带你玩转spark计算框架

首先明确一点:学计算框架主要就是学2部分:1.资源调度 2.任务调度写一个spark程序包含加载配置文件,创建上下文,创建RDD , 调用RDD的算子,用户在算子中自定义的函数map端:狭窄的理解是MapReduce中的map端,本质就是将数据变成你想要的形式,例如:按照空格切分,乘2等等操作。shuffle : 分为shuffle write(临时存到本地磁盘)和shuffle read(从磁盘...
摘要由CSDN通过智能技术生成

首先明确一点:学计算框架主要就是学2部分:1.资源调度 2.任务调度

写一个spark程序包含加载配置文件,创建上下文,创建RDD , 调用RDD的算子,用户在算子中自定义的函数

map端:狭窄的理解是MapReduce中的map端,本质就是将数据变成你想要的形式,例如:按照空格切分,乘2等等操作。

shuffle : 分为shuffle write(临时存到本地磁盘)和shuffle read(从磁盘拉数据,同一个分区的拉到一个partition上)阶段,本质就是数据的规整,例如同一个分区的拉到一块。

reduce端:狭窄的理解是MapReduce中的reduce端,本质就是数据的聚合

宽泛的理解2个stage之间,前面的可以说是map端,后面的stage可以理解为reduce端,中间正好需要shuffle过程,且shuffle过程需要再shuffle write阶段将数据暂时存到本地磁盘上。

spark专业术语:

任务相关的专业术语:

1.application:用户写的应用程序(包含2部分:Driver Program(运行应用的main()方法,创建spark上下文 )和Executor Program(用户在算子中自定义的函数))

2.job:一个action类算子触发执行的操作,有多少个action类算子就有多少个job,一个应用程序可以有多个job.

3.stage(阶段):一组任务(task)就是一个stage,例如MapReduce中一组的map task(一个切片对应一个map task),一个job中可以有有多个stage(根据宽依赖为分界线来划分的)

.4.task(任务:底层就是一个thread(线程)):在集群运行时最小的执行单元

集群相关的专业术语:

Master:资源管理的主节点

Worker:资源管理的从节点

Executor:执行任务的进程,运行在worker节点上,负责运行task,负责将数据存储到内存或磁盘,每个application有多个独立的Executors

ThreadPool:线程池,存在与Executor进程中,task在线程池中运行

RDD的依赖关系

RDD有5大特性:

1.一个RDD有多个partition组成。

2.每个算子实质上作用于每个partition上。

3.每个RDD依赖其父RDD.

4.可选项 :分区器是作用于KV格式的RDD上

5.可选项:RDD会提供一系列的最佳的计算位置

父RDD不知道其子RDD,但是子RDD知道的的所有父RDD

1.窄依赖:父RDD与子RDD,partition的关系是一对一,这种情况并没有shuffle过程

例如:map(x=>x.split(" "))

2.宽依

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值