Hadoop资源管理器 二
NMLivelinessMonitor :用来监控节点管理器是否正常,如果节点10分钟「可配置」之内未能发送心跳信息,节点管理器将会判定死亡,下一次将不会启动新的容器YARN.am.liveness-monitor.expiry-interval-ms
此命令可以配置发送心跳信息的时间间隔
Application master component:
AMlivelinessMonitor:监控应用程序管理器,也是在默认情况(10分钟)下,向资源管理器发送心跳信息,来判定应用程序是否正常,如果判定死亡,资源管理器将会把死掉的应用程序管理器销毁回收,并且创建新的容器与管理器,这个过程将会重复四次,如果四次都未成功,将会通知管理客户端!
ApplicationMasterService:
所有Application master的请求都是由这个服务进行注册和回应管理,或者转发给YARN
Node manager core
节点管理器中的组件
向资源管理器定期发送(心跳 详细)信息
Resource manager component:
- NodeStatusUpdater 定期向资源管理器发送信息
- NodeHealthCheckerService 不停的检查自身信息,将其汇报给NodeStatusUpdater
Container component/容器内部组件 - ContainerManager将受到的请求发送给ContainerLauncher,受到指令后进行动作
- ContainerMonitor:监控到重要信息 信息将会在调试过程中使用 调试:内存 cpu 硬盘等硬件信息,并进行调优
- LogHandler:将会处理与保存容器运行过程中的日志 可以进行指定
YARN 为了高效的进行生产
- FIFO scheduler 先来先到
- Capacity scheduler 容量调度
- Fair scheduler 公平调度
进程细分为线程 线程共享进程的内存
任务庞大的情况下,可以分配多个进程共完成一个任务,属于分布式
调度器
可以在YARN-site.xml中指定调度器
FIFO scheduler
按照程序启动的先后顺序进行分配 先到的申请的内存充足 如果不足无法达到申请的预期则会继续等
Capacity scheduler
确保最小使用量 如果内存有64G 现在有一个64m的服务启动,在空闲或没有别的服务启动的情况下 那么将会把64G的内存全部分配,如果此时有新的服务启动,将会压缩第一个的内存,确保最小使用,如果在确保最小使用量的情况下,内存不足以让后面的程序运行,后面的程序则会进行等待,等待第一个完成!
队列划分 将资源按照一定比例进行划分 如果目前有AB两个队列申请资源,则会分配60%系统资源给A 剩下40%资源分配给B
如果此时有队列C 则会将队列A的资源进行压缩