hadoop-yarn简介及常用命令详解(超详细)

2024-06-29 1036阅读

文章目录

  • 前言
  • 一、YARN概述
    • 1. YARN简介
    • 2. YARN架构
      • (1) ResourceManager(资源管理器)
      • (2) NodeManager(节点管理器)
      • (3) ApplicationMaster(应用程序管理器)
      • 3. YARN特点
        • (1) 分布式资源管理
        • (2) 多框架支持
        • (3) 灵活的资源调度
        • (4) 高可靠性和容错性
        • (5) 可扩展性
        • (6) 安全性
        • 二、YARN命令介绍
          • 1. YARN命令简介
          • 2. yarn application命令
            • (1) yarn application命令的基本语法
            • (2) 常用的yarn application命令选项
            • 3. yarn node命令
              • (1) yarn node命令的基本语法
              • (2) 常用的yarn node命令选项
              • 4. yarn queue命令
                • (1) yarn queue命令的基本语法
                • (2) 常用的yarn queue命令选项
                • 5. yarn logs命令
                  • (1) yarn logs命令的基本语法
                  • (2) 常用的yarn logs命令选项
                  • 6. yarn rmadmin命令
                    • (1) yarn rmadmin命令的基本语法
                    • (2) 常用的yarn rmadmin命令选项
                    • 三、YARN常用命令
                      • 1. 列出所有正在运行的应用程序
                      • 2. 获取指定应用程序的状态
                      • 3. 终止指定的应用程序
                      • 4. 将指定应用程序移动到指定队列
                      • 5. 列出指定队列中的应用程序
                      • 6. 列出所有节点的状态和资源使用情况
                      • 7. 获取指定节点的状态和资源使用情况
                      • 8. 将指定节点标记为退役状态
                      • 9. 刷新节点列表
                      • 10. 获取指定队列的状态和资源使用情况
                      • 11. 列出所有队列的状态和资源使用情况
                      • 12. 指定要获取日志的应用程序ID
                      • 13. 指定要获取日志的容器ID
                      • 14. 指定要获取日志的节点地址
                      • 15. 刷新队列配置
                      • 16. 刷新节点列表
                      • 17. 刷新超级用户组配置
                      • 总结

                        前言

                        在大数据处理和分布式计算领域,Hadoop是一个重要的开源框架。其中,YARN(Yet Another Resource Negotiator)作为Hadoop生态系统中的资源管理框架,扮演着关键的角色。本文将详细介绍Hadoop-YARN的概述、架构、特点和原理,并提供常用命令的详细解释。

                        hadoop-yarn简介及常用命令详解(超详细)
                        (图片来源网络,侵删)

                        hadoop安装教程:hadoop安装与配置-shell脚本一键安装配置(集群版)


                        一、YARN概述

                        1. YARN简介

                        Hadoop-YARN是Apache Hadoop生态系统中的一个集群资源管理器。它作为Hadoop的第二代资源管理框架,负责管理和分配集群中的计算资源。YARN的设计目标是提供一个通用的资源管理框架,使得Hadoop集群可以同时运行多个计算框架,如MapReduce、Apache Spark、Apache Flink等。通过将集群资源和计算任务分离,YARN实现了更高的资源利用率和更好的集群资源管理。

                        2. YARN架构

                        Hadoop-YARN的架构包括以下组件:

                        (1) ResourceManager(资源管理器)

                        ResourceManager是YARN集群的主要组件,负责整个集群的资源管理和分配。它有两个关键角色:调度器(Scheduler)和应用程序管理器(ApplicationManager)。

                        • 调度器负责将集群中的资源分配给不同的应用程序。它根据资源请求、优先级和调度策略来决定如何分配资源。调度器可以使用不同的调度算法,如容量调度器(Capacity Scheduler)或公平调度器(Fair Scheduler)。

                        • 应用程序管理器负责接收来自客户端的作业提交请求,并与调度器协商资源。一旦应用程序被接受,应用程序管理器会为该应用程序分配一个ApplicationMaster。

                          (2) NodeManager(节点管理器)

                          NodeManager是每个集群节点上的代理,负责管理该节点上的资源。它接收来自ResourceManager的指令,并执行以下任务:

                          • 启动和监控容器(Container):容器是YARN中的一个抽象概念,它是一组资源(如内存、CPU等)的封装。NodeManager根据ResourceManager的指令启动和监控容器,为应用程序提供所需的资源。

                          • 报告节点的资源使用情况:NodeManager定期向ResourceManager报告节点的资源使用情况,包括可用资源和已使用资源。

                            (3) ApplicationMaster(应用程序管理器)

                            每个应用程序在YARN中都有一个ApplicationMaster,它负责与ResourceManager协商资源,并与NodeManager一起管理应用程序的执行。

                            • 向ResourceManager请求资源:ApplicationMaster根据应用程序的需求向ResourceManager请求资源。它可以动态地请求和释放资源,根据应用程序的需求进行灵活的资源调整。

                            • 与NodeManager协调任务执行:一旦资源被分配给应用程序,ApplicationMaster与NodeManager协调任务的执行。它可以启动、监控和管理任务容器,并与NodeManager通信以获取任务的执行状态。

                              3. YARN特点

                              Hadoop-YARN具有以下特点:

                              (1) 分布式资源管理

                              YARN提供了分布式资源管理的能力,可以有效地管理和分配集群中的计算资源。它将集群资源(如内存、CPU等)与计算任务(如MapReduce作业)分离,实现了更高的资源利用率和更好的集群资源管理。

                              (2) 多框架支持

                              YARN设计为通用的资源管理框架,可以同时运行多个计算框架,如MapReduce、Apache Spark、Apache Flink等。这意味着在同一个集群上可以运行不同的计算框架,根据不同的需求选择最适合的框架进行数据处理和分析。

                              (3) 灵活的资源调度

                              YARN提供了灵活的资源调度机制,可以根据应用程序的需求动态分配和调整资源。它支持不同的调度算法,如容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler),可以根据优先级、资源请求和调度策略来决定资源的分配。

                              (4) 高可靠性和容错性

                              YARN具有高可靠性和容错性的特点。它通过监控和管理应用程序的执行,可以检测和处理节点故障、任务失败等情况。当节点或任务发生故障时,YARN可以自动重新分配资源和重新执行任务,确保作业的完成和数据的一致性。

                              (5) 可扩展性

                              YARN的设计目标之一是可扩展性,它可以适应不断增长的数据规模和计算需求。通过添加更多的节点和资源,YARN可以扩展到大规模的集群,处理更多的数据和作业。

                              (6) 安全性

                              YARN提供了安全性机制,可以保护集群中的数据和应用程序免受未经授权的访问和恶意操作。它支持身份验证、授权和审计等安全功能,确保集群的安全性和数据的保护。


                              二、YARN命令介绍

                              1. YARN命令简介

                              YARN提供了一组命令行工具,用于管理和监控YARN应用程序和集群。

                              2. yarn application命令

                              (1) yarn application命令的基本语法

                              yarn application命令的基本语法如下:

                              yarn application [genericOptions] [command] [commandOptions]
                              

                              (2) 常用的yarn application命令选项

                              yarn application命令常用选项和参数如下:

                              • -list:列出所有正在运行的应用程序。
                              • -status :获取指定应用程序的状态。
                              • -kill :终止指定的应用程序。
                              • -movetoqueue :将指定应用程序移动到指定队列。
                              • -queue :列出指定队列中的应用程序。

                                3. yarn node命令

                                (1) yarn node命令的基本语法

                                yarn node命令的基本语法如下:

                                yarn node [genericOptions] [command] [commandOptions]
                                

                                (2) 常用的yarn node命令选项

                                yarn node命令常用选项和参数如下:

                                • -list:列出所有节点的状态和资源使用情况。
                                • -status :获取指定节点的状态和资源使用情况。
                                • -decommission :将指定节点标记为退役状态。
                                • -refreshNodes:刷新节点列表。

                                  4. yarn queue命令

                                  (1) yarn queue命令的基本语法

                                  yarn node命令的基本语法如下:

                                  yarn queue [genericOptions] [command] [commandOptions]
                                  

                                  (2) 常用的yarn queue命令选项

                                  yarn queue命令常用选项和参数如下:

                                  • -status :获取指定队列的状态和资源使用情况。
                                  • -list:列出所有队列的状态和资源使用情况。

                                    5. yarn logs命令

                                    (1) yarn logs命令的基本语法

                                    yarn logs命令的基本语法如下:

                                    yarn logs [genericOptions] [command] [commandOptions]
                                    

                                    (2) 常用的yarn logs命令选项

                                    yarn logs命令常用选项和参数如下:

                                    • -applicationId :指定要获取日志的应用程序ID。
                                    • -containerId :指定要获取日志的容器ID。
                                    • -nodeAddress :指定要获取日志的节点地址。

                                      6. yarn rmadmin命令

                                      (1) yarn rmadmin命令的基本语法

                                      yarn rmadmin命令的基本语法如下:

                                      yarn rmadmin [genericOptions] [command] [commandOptions]
                                      

                                      (2) 常用的yarn rmadmin命令选项

                                      yarn rmadmin命令常用选项和参数如下:

                                      • -refreshQueues:刷新队列配置。
                                      • -refreshNodes:刷新节点列表。
                                      • -refreshSuperUserGroupsConfiguration:刷新超级用户组配置。

                                        三、YARN常用命令

                                        下面是一些常用的YARN命令及其用法:

                                        1. 列出所有正在运行的应用程序

                                        yarn application -list
                                        

                                        该命令将列出所有正在运行的应用程序。

                                        2. 获取指定应用程序的状态

                                        yarn application -status application_1234567890_0001
                                        

                                        该命令将获取应用程序ID为application_1234567890_0001的应用程序的状态。

                                        3. 终止指定的应用程序

                                        yarn application -kill application_1234567890_0001
                                        

                                        该命令将终止应用程序ID为application_1234567890_0001的应用程序。

                                        4. 将指定应用程序移动到指定队列

                                        yarn application -movetoqueue application_1234567890_0001 root.queue1
                                        

                                        该命令将将应用程序ID为application_1234567890_0001的应用程序移动到名为root.queue1的队列。

                                        5. 列出指定队列中的应用程序

                                        yarn application -queue root.queue1
                                        

                                        该命令将列出名为root.queue1的队列中的应用程序。

                                        6. 列出所有节点的状态和资源使用情况

                                        yarn node -list
                                        

                                        该命令将列出集群中所有节点的状态和资源使用情况。

                                        7. 获取指定节点的状态和资源使用情况

                                        yarn node -status node1
                                        

                                        该命令将获取名为node1的节点的状态和资源使用情况。

                                        8. 将指定节点标记为退役状态

                                        yarn node -decommission node2
                                        

                                        该命令将将名为node2的节点标记为退役状态。

                                        9. 刷新节点列表

                                        yarn node -refreshNodes
                                        

                                        该命令将刷新节点列表,更新集群中的节点信息。

                                        10. 获取指定队列的状态和资源使用情况

                                        yarn queue -status root.default
                                        

                                        该命令将获取名为root.default的队列的状态和资源使用情况。

                                        11. 列出所有队列的状态和资源使用情况

                                        yarn queue -list
                                        

                                        该命令将列出所有队列的状态和资源使用情况。

                                        12. 指定要获取日志的应用程序ID

                                        yarn logs -applicationId application_1234567890_0001
                                        

                                        该命令将获取应用程序ID为application_1234567890_0001的应用程序的日志。

                                        13. 指定要获取日志的容器ID

                                        yarn logs -containerId container_1234567890_0001_01_000001
                                        

                                        该命令将获取容器ID为container_1234567890_0001_01_000001的容器的日志。

                                        14. 指定要获取日志的节点地址

                                        yarn logs -nodeAddress node1.example.com
                                        

                                        该命令将获取位于node1.example.com节点上的应用程序的日志。

                                        15. 刷新队列配置

                                        yarn rmadmin -refreshQueues
                                        

                                        该命令将刷新队列配置,更新队列的相关信息。

                                        16. 刷新节点列表

                                        yarn rmadmin -refreshNodes
                                        

                                        该命令将刷新节点列表,更新集群中的节点信息。

                                        17. 刷新超级用户组配置

                                        yarn rmadmin -refreshSuperUserGroupsConfiguration
                                        

                                        该命令将刷新超级用户组配置,更新超级用户组的相关信息。


                                        总结

                                        本文详细介绍了YARN的概述、架构、特点和原理,并提供了常用命令的详细解释。YARN作为Hadoop生态系统中的重要组件,具有分布式资源管理、多框架支持、灵活的资源调度、高可靠性和容错性、可扩展性以及安全性等特点。通过合理使用YARN命令,可以更好地管理和监控YARN应用程序和集群,提高大数据处理和分布式计算的效率。

                                        希望本文对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]