--==========Yarn组织架构============================================
=>ResourceManager
* 全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配
* 功能
处理客户端请求
启动、监控ApplicationMaster
监控NodeManager
资源分配与调度
=>Nodemanager
* 整个集群有多个,负责单节点资源管理和使用
* 功能
单个节点上的资源管理和任务管理
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
* 管理抽象容器Container:即每个应用程序在每个节点上所用的资源
* 定时向Resource汇报节点上的资源使用情况和Container的运行状态
=>ApplicationMaster
* 管理Yarn内运行的应用程序
* 功能
数据切分
为应用程序申请资源,并进一步分配给内部任务
任务监控与容错
* 协调来自ResourceManager的资源,并通过NodeManager监控容器的执行和资源的使用
=>contain
* Yarn中的资源抽象,封装某个节点上的多维度资源(内存,CPU,网络等)
当Application向ResourceManager申请资源时,RM返回给AM的资源便是用Container表示的
* Yarn会为每个任务分配一个Container,且任务只能使用Container中的资源
* 功能
对任务运行环境的抽象
描述一系列信息
任务运行资源
任务启动命令
任务运行环境
--==========Yarn对资源的管理==============================================
=>资源管理简介
* 资源调度由ResourceManager完成
资源隔离由NodeManager管理
* ResourceManager将某NodeManager上资源分配给任务(资源调度)
NodeManager需要按要求为任务分配相应的资源,并保证这些资源的独占性(资源隔离)
* 资源指内存,CPU,IO三种资源,yarn支持内存和CPU的调度
* 内存决农行卡任务的生死,CPU决定任务运行的快慢
=>资源管理配置:yarn-site.xml
yarn.nodemanager.resource.memory-mb:配置使用的内存,默认8172
yarn.nodemanager.resource.cpu-vcores 配置使用的核数,默认8
--==========Yarn为核心的生态系统==============================================
=>支持类型
* 批处理:mapreduce
* 交互式的:Tez
* 在线数据库:HBase
* 流式计算:Storm,S4
* 图形计算:Giraph
* 内存计算:Spark
* OpenMpI
* Search
=>集成框架的工具
Apache Slider把已经存在的框架运行在Yarn上
--==========Yarn日志聚合功能:yarn-site.xml========================
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
640800