大数据组件——spark

基础知识

yarn是hadoop集群的资源管理系统

yarn的组件主要包含3个部分

1.ResourceManager:Global(全局)的进程

2.NodeManager:运行在每个节点上的进程

3.ApplicationMaster:Application-specific 应用级别的进程

4.Container:YARN中的资源抽象

 

ResourceManager (RM

ResourceManager主要包含两个组件:Scheduler和ApplicationManager

Scheduler是一个资源调度器,主要负责协调集群中各个应用的资源分配,只负责调度Containers,不关心应用程序监控及其运行状态等信息

ApplicationManager主要负责接收job的提交请求,为应用分配第一个 Container来运行ApplicationMaster,还有负责监控ApplicationMaster,遇到失败时重启ApplicationMaster运行的Container

 

NodeManager(NM

NM是每个节点上的资源和任务管理器,会定时向RM汇报本节点上的资源使用情况和各个Container的运行状态,同时会接收并处理来自AM的Container启动/停止等请求

 

ApplicationMaster(AM

ApplicationMaster是对运行在Yarn中的某个应用的抽象,它其实就是某个类型应用的实例,主要功能是向ResourceManager申请计算资源(Containers)并且和NodeManager交互来执行和监控具体的task。很多分布式应用都开发了对应的应用程序框架,用于在YARN上运行任务,例如Spark,Storm等,自己也可以开发符合规范的YARN application

 

Container

封装了某个节点上的多维度资源,如内存,cpu,磁盘,网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源

 

 

spark的yarn-cluster模式

 

1.  程序提交作业到ResourceManager,请求启动ApplicationMaster

2. ResourceManager会分配container,在某个NodeManager上面启动ApplicationMaster,相当于Driver

3. ApplicationMaster启动后,会和ResourceMananger通讯,请求container来启动executor

4. ResourceManager会提供一些container给ApplicationMaster用来启动executor

5. ApplicationMaster会连接其他NodeManager来启动executor

6. executor启动后会向ApplicationMaster反向注册

 

spark的yarn-client模式

 

1. yarn-client,区别在于driver是在本地客户端上运行的,相应的ApplicationMaster只是作为一个Executor启动器,并没有相应的Driver进程

 

yarn-cluster yarn-client
driver运行在AM中 driver运行在client客户端
日志分布在各个节点上,需要登录到某个节点才能看到日志 比较适合于调试,日志存在客户端,可以直接查看到各种日志
client断开的话,任务不受影响,可以继续运行 连接断了,任务就会被中断

注意:spark任务都会绑定一个端口来显示WebUI,默认端口是4040,如果端口被占用会依次递增+1端口重试,重试次数由参数spark.port.maxRetries=16控制,默认重试16次后放弃执行

 

posted @ 2019-11-19 10:42  东木刀纹  阅读(255)  评论(0编辑  收藏  举报