一、Yarn的基本概念和架构二、Yarn的工作流程三、Yarn的核心组件及其功能
3.1 ResourceManager3.2 NodeManager3.3 ApplicationMaster四、Yarn的基本使用4.1 Yarn Shell 命令4.2 Yarn Shell 使用示例4.2.1 首先确定 Yarn 集群启动4.2.2 发起任务4.2.3 查看任务4.2.4 终止作业运行五、问题5.1 问题一5.1.1 报错5.1.2 处理
Yarn(Yet Another Resource Negotiator)是一个分布式资源管理框架,主要用于管理和调度大数据集群中的资源。Yarn 从 MapReduce 中分离出来,成为独立的资源调度框架,旨在提供更通用和高效的管理方式。
一、Yarn的基本概念和架构
Yarn 采用主从架构,包括一个主节点(ResourceManager)和多个从节点(NodeManager)。ResourceManager 负责处理客户端请求、监控 NodeManager、进行资源调度等;NodeManager 则负责具体服务器上的资源和任务管理。
二、Yarn的工作流程
Yarn 的工作流程可以分为以下几个阶段:
1、作业提交阶段
客户端向 ResourceManager 提交作业申请。
2、作业初始化阶段
ResourceManager 中的 ApplicationManager 处理请求并返回 JobID 和 HDFS 路径。
3、任务分配阶段
客户端将作业相关资源提交到指定的 HDFS 路径,并申请执行作业。
4、任务执行阶段
ApplicationMaster 从 HDFS 获取作业资源并计算任务资源,向 ResourceScheduler 申请执行任务所需资源。
5、任务完成阶段
ApplicationMaster 监测到所有任务执行完毕后,通知 ResourceManager 释放资源。
三、Yarn的核心组件及其功能
3.1 ResourceManager
处理客户端请求、监控 NodeManager、进行资源调度。它包括两个主要组件:资源调度器(ResourceScheduler)和应用程序管理器(ApplicationManager)。
3.2 NodeManager
负责具体服务器上的资源和任务管理,定时向 ResourceManager 汇报资源使用情况和 Container 的运行情况,接收和处理启动和停止 Container 的命令。
3.3 ApplicationMaster
每个应用程序对应一个 ApplicationMaster,负责单个应用程序的管理、数据切片、向 ResourceManager 申请资源并分配内部任务。
四、Yarn的基本使用
Yarn 是一个资源管理框架,所以它可以对提交到集群中的任务进行查看,并可以强制结束这些任务。
4.1 Yarn Shell 命令
# Yarn application [command_options]
命令参数 | 描述 |
---|---|
-list | 从RM列出应用任务 |
-kill |
杀掉应用任务 |
-status |
查看应用任务状态 |
4.2 Yarn Shell 使用示例
一般使用流程,是先用 list 查看集群中未完成的所有任务以及它的 ID,如果想查看任务详细信息则使用 status,如果想强制终止任务则使用 kill。
4.2.1 首先确定 Yarn 集群启动
使用命令 jps 命令确定。
# jps
1、node01 节点查看
2、 node02 节点查看
3、node03 节点查看
4.2.2 发起任务
使用 mapreduce 官方自带的案例,提交到 Yarn 集群中运行,然后再将其终止掉。
# cd $HADOOP_HOME/share/hadoop/mapreduce
计算圆周率,第一个参数为 Map 运行次数,第二个参数为投掷次数(用于计算圆的一种方式,此参数越大,计算出的圆周率越准确)
# hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 10 100000
4.2.3 查看任务
# yarn application -list
4.2.4 终止作业运行
新打开一个Shell窗口,执行Yarn命令,终止作业运行
# yarn application -kill <Application ID>
当任务提交到 Yarn 集群中运行的时候,默认情况下,控制台会输出作业运行的 Log 信息,此时使用 CTRL^C 不能终止任务,只是停止其在控制台的信息输出,而任务已经提交到分布式集群中去运行了。终止任务,必须先使用 Yarn application -list 获取进程号,再使用-kill进行终止。
五、问题
5.1 问题一
5.1.1 报错
找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster。
5.1.2 处理
1、 查看classpath
# hadoop classpath
2、 修改 yarn-site.xml
将 hadoop classpath 的输出内容,添加到 yarn-site.xml 文件中。
# vim yarn-site.xml
3、 将修改后的文件分到到其他节点
# scp yarn-site.xml node02:`pwd`
# scp yarn-site.xml node03:`pwd`
4、 重启 yarn
#关闭Yarn
stop-yarn.sh
#开启Yarn
start-yarn.sh
原创 超哥的IT私房菜