大数据学习(27)-Yarn总结与注意事项

发布时间:2023年12月19日

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏??+留言📝支持一下博主哦🤞


一、概述

YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个组件,用于管理和调度分布式应用程序。它提供了一个可扩展的框架,用于处理大规模数据和分布式计算任务。YARN的主要目标是提供更高效、灵活和可扩展的资源管理,以满足Hadoop生态系统中的各种应用程序需求。

二、YARN的核心组件

  1. ResourceManager(RM):ResourceManager是YARN中的主要组件,负责整个集群的资源管理和调度。它负责接收来自应用程序的资源请求,并根据集群的当前状态分配资源。
  2. NodeManager(NM):NodeManager是集群中的工作节点,负责管理单个节点的资源。它负责启动、监视和停止应用程序容器,并报告容器的状态和资源使用情况。
  3. ApplicationMaster(AM):ApplicationMaster是每个应用程序特有的组件,负责协调和管理应用程序的生命周期。它与ResourceManager交互,以获取资源并跟踪应用程序的状态。
  4. Container:Container是YARN中的基本工作单元,用于运行应用程序的代码和进程。每个Container都包含一个应用程序的特定任务或进程。

三、YARN的工作流程

  1. 应用程序提交:用户将应用程序提交给ResourceManager。
  2. 资源分配:ResourceManager根据应用程序的需求和集群的状态,为应用程序分配资源。
  3. ApplicationMaster启动:ApplicationMaster启动并与管理员交互,以获取更多资源或进行任务调度。
  4. 容器分配:ApplicationMaster向ResourceManager请求容器资源,ResourceManager将容器分配给ApplicationMaster。
  5. 容器启动:NodeManager根据容器的配置启动容器,并将容器状态报告给ResourceManager。
  6. 任务执行:容器执行应用程序的任务或进程。
  7. 任务状态跟踪:ApplicationMaster与ResourceManager和NodeManager交互,以跟踪应用程序的状态和进度。
  8. 应用程序完成:应用程序完成执行后,ApplicationMaster向ResourceManager报告应用程序的状态,ResourceManager将资源释放回集群。

YARN的执行流程包括以下几个步骤:

  1. 用户向YARN中提交应用程序,其中包括ApplicationMaster(AM)程序、启动AM的命令以及用户程序等。
  2. AM首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态。
  3. AM采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
  4. 一旦AM申请到资源后,便与对应的NodeManager通信,要求它启动任务。
  5. NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
  6. 各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败的时候重新启动任务。
  7. 应用程序运行完成后,AM向ResourceManager注销并关闭自己。

四、执行流程:

  1. 用户向YARN中提交应用程序,其中包括ApplicationMaster(AM)程序、启动AM的命令以及用户程序等。
  2. AM首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态。
  3. AM采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
  4. 一旦AM申请到资源后,便与对应的NodeManager通信,要求它启动任务。
  5. NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
  6. 各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败的时候重新启动任务。
  7. 应用程序运行完成后,AM向ResourceManager注销并关闭自己。

以下是在Linux环境中部署YARN(Hadoop的资源管理器)的详细步骤。这里假设你已经安装了Java和Hadoop。

1. **下载并解压Hadoop:**
? ?- 下载适合你的操作系统的Hadoop版本,例如从Apache官网下载。
? ?- 解压下载的Hadoop压缩包,例如:
? ?```

? ?tar -zxvf hadoop-3.x.x.tar.gz


? ?```

2. **配置环境变量:**
? ?- 编辑`~/.bashrc`或`~/.bash_profile`文件,添加以下环境变量:
? ?```

? ?export HADOOP_HOME=/path/to/your/hadoop/directory
? ?export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3. **配置Hadoop:**
? ?- 编辑core-site.xml文件,配置HDFS和YARN的基础信息,例如:
?

? ?<configuration>
? ? ?<property>
? ? ? ?<name>fs.defaultFS</name>
? ? ? ?<value>hdfs://localhost:9000</value>
? ? ?</property>
? ? ?<property>
? ? ? ?<name>hadoop.tmp.dir</name>
? ? ? ?<value>/path/to/your/hadoop/tmp</value>
? ? ?</property>
? ?</configuration>
? ?```
? ?- 编辑yarn-site.xml文件,配置YARN的相关参数,例如:
? ?```xml
? ?<configuration>
? ? ?<property>
? ? ? ?<name>yarn.nodemanager.aux-services</name>
? ? ? ?<value>mapreduce_shuffle</value>
? ? ?</property>
? ? ?<property>
? ? ? ?<name>yarn.resourcemanager.hostname</name>
? ? ? ?<value>localhost</value>
? ? ?</property>
? ?</configuration>

4. **格式化HDFS:**
? ?- 在Hadoop目录下运行以下命令来格式化HDFS:

? ?hdfs namenode -format

5. **启动Hadoop服务:**
? ?- 启动HDFS和YARN服务:

? ?sbin/start-dfs.sh
? ?sbin/start-yarn.sh


? ?应该能看到NameNode、DataNode、ResourceManager、NodeManager等进程。

以上就是在Linux环境中部署YARN的基本步骤。请注意,这只是一个基本的单节点部署,实际生产环境中可能需要进行更复杂的配置和优化。

需要注意的是:在开启hiveserver2后连接需要关闭hdfs和yarn才可以连接,因为之前的许多配置项还米有生效。

文章来源:https://blog.csdn.net/weixin_61006262/article/details/135093466
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。