Spark架构设计

在这里插入图片描述
spark架构设计
1 角色名称
Client,Driver program,cluster manager/Yarn,workerNode
2 角色作用
client:用户通过client提交application程序,shell命令等
Driver:启动sparkContext环境,将application程序转换成任务RDD和DAG有向图,与clustermanger进行资源交互,分配task给workerNode
cluster manger:作为spark的资源管理者,存储所有工作节点的元数据,为task分配资源,统一资源管理与任务调度
workNode: 工作节点,其内部分为task,cache,excurtor三部分cache为缓存进行加速计算,excurtor类比与container,
excurtor:Executor: 某个Application运行在worker节点上的一个进程, 该进程负责运行某些Task, 并且负责将数据存到内存或磁盘上,
每个Application都有各自独立的一批Executor

3 角色关联关系
首先用户提交application程序到client,Driver会启动sparkcontext环境,将application程序转换成多个任务,sparkContext向clustermanger
申请资源和运行excutor,以分配任务task,一个application可以多个excurtor并发执行,同时,clustermanger通过心跳机制查看工作节点的状态,
而excurtor则向driver进行心跳汇报状态,当job执行结束后,excurtor向driver请求关闭.
4 竞品角色
和mapreduce进行比较有三个优势
1 每个工作节点增加了cache,提升了计算速度,多个相同的计算可以直接从缓存调用结果不需要重新计算。
2 mapreduce进程级别的计算,每次分到一个任务会重启一个进程,并发时是多进程,而spark是同一个进程,多个线程并发执行,效率会更高
mapreduce里面,一个container只运行一个task,而spark中 一个container中运行一个excutor,一个excutor中运行多个task
3 mapreduce的计算结果是写入磁盘的而spark计算结果是写入内存,速度更快
二 十五个关键词作用
RDD 弹性分布式数据集,是一组只读,可分区的数据集合
partition 和mapreduce的inputsplit类似,划分为不同数据块
算子 :对函数进行的一项操作,关系,映射,变换
Transformation算子 延迟执行算子,需要action算子触发
Action算子 : 触发spark提交作业
窄依赖 RDD 1对1 关系
宽依赖 RDD 1对多关系
Application 用户编写的应用程序–job
Driver 运行main,启动sparkContext
clusterManager 进行资源管理
workNode 创建并启动Executor,将资源和任务进一步分配给Executor,
同步资源信息给Cluster Manager
Executor 运行task,并将数据写入内存或者磁盘
Task 分为shuffleMapTask和ResultTask
Job job----DAGScheduler—分解为stage
Stage job组成部分,job切分以shuffle为准
DAG DAG(directed acycle graph):有向无环图
注意:一个Job=多个Stage,一个Stage=多个同种Task
sparkContext: SparkContext内置的DAGScheduler负责创建Job,
将DAG中的RDD划分到不同的Stage,提交Stage等功能。
内置的TaskScheduler负责资源的申请、任务的提交及请求集群对任务的调度等工作

三 运行模式
1 本地运行模式local-----测试逻辑是否正确
2 yarn —yarn集群,driver运行在yarn client
3 yarn driver运行在am continner中
四 启动方式以及shell命令
启动: spark-shell --master local[2] 线程数量为2
构造RDD sc.parallelize(Seq(xxxxxx))
sc.textFile(path)
reduceByKey()----需要action算子collect()结合使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值