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

news/2024/7/23 9:33:15 标签: hadoop, 大数据, 分布式

文章目录

  • 前言
  • 一、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安装教程: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 <applicationId>:获取指定应用程序的状态。
  • -kill <applicationId>:终止指定的应用程序。
  • -movetoqueue <applicationId> <queueName>:将指定应用程序移动到指定队列。
  • -queue <queueName>:列出指定队列中的应用程序。

3. yarn node命令

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

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

yarn node [genericOptions] [command] [commandOptions]

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

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

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

4. yarn queue命令

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

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

yarn queue [genericOptions] [command] [commandOptions]

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

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

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

5. yarn logs命令

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

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

yarn logs [genericOptions] [command] [commandOptions]

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

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

  • -applicationId <applicationId>:指定要获取日志的应用程序ID。
  • -containerId <containerId>:指定要获取日志的容器ID。
  • -nodeAddress <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应用程序和集群,提高大数据处理和分布式计算的效率。

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


http://www.niftyadmin.cn/n/5266912.html

相关文章

zlib - 编译

文章目录 zlib - 编译概述笔记编译win10 vs2019的zlib版本测试编译出的zlibDLL自己新建一个vs2019工程来编译zlibDll备注备注END zlib - 编译 概述 账单分析程序写完了, 处理excel时用到了libxlsxwriter. 看了一下libxlsxwriter主页, 有新版本. 想自己编译一个libxlsxwriter…

最新Redis7主从复制(保姆级教程)

前提准备&#xff1a;三台云服务器&#xff08;吐血消费&#xff0c;点赞回血&#xff09;也可以使用虚拟机创建三台&#xff0c;但是我搞了一天也连接不上&#xff0c;要是又可以连接上的大家可以教我一下&#xff0c;也可以参考一下或者大家可以参考一下这个大佬的配置&#…

商业印刷市场分析:预计2029年将达到53004亿元

商业印刷技术显示了强大的生命力。电子商务的扩张性发展&#xff0c;传统的商务印刷行业也在逐渐的转型。中国印刷业已深度融入全球印刷加工产业链&#xff0c;为国际社会超过50个国家提供印刷包装服务。数据显示&#xff0c;中国印刷业对外加工贸易额已达842亿元。 商业印刷是…

P1637 三元上升子序列 题解

复制Markdown 展开 题目描述 Erwin 最近对一种叫 thair 的东西巨感兴趣。。。 在含有 &#xfffd; n 个整数的序列 &#xfffd; 1 , &#xfffd; 2 , … , &#xfffd; &#xfffd; a 1 ​ ,a 2 ​ ,…,a n ​ 中&#xff0c;三个数被称作thair当且仅当 &…

libxlsxwriter - 编译

文章目录 libxlsxwriter - 编译概述笔记编译环境编译思路编译安装组件写个测试程序, 看看编译的组件是否好使END libxlsxwriter - 编译 概述 想换一个新版的libxlsxwriter, 自己编译一个出来. libxlsxwriter依赖zlib, 前面已经成功编译了zlib(zlib - 编译). 笔记 libxlsxwr…

玩转大数据18:大规模数据处理与分布式任务调度

引言 在数字化时代&#xff0c;数据成为了一种宝贵的资源&#xff0c;对于企业和组织来说&#xff0c;如何有效地处理和分析这些数据成为了关键的竞争力。大规模数据处理与分布式任务调度作为大数据处理的核心技术&#xff0c;为解决这一问题提供了有效的解决方案。 随着数据…

C 库函数 - ctime()

描述 C 库函数 char *ctime(const time_t *timer) 返回一个表示当地时间的字符串&#xff0c;当地时间是基于参数 timer。 返回的字符串格式如下&#xff1a; Www Mmm dd hh:mm:ss yyyy 其中&#xff0c;Www 表示星期几&#xff0c;Mmm 是以字母表示的月份&#xff0c;dd 表示…

Linux驱动开发中private_data变量的理解

前言 在嵌入式Linux中&#xff0c;"private_data"是一个结构体或类中的成员变量&#xff0c;用于指向该设备的私有数据。这个变量的作用是为了让驱动程序可以在设备和设备文件之间建立联系。 分析 当内核访问某个设备文件时&#xff0c;它会调用设备驱动程序中的打开…