暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何自定义 Apache YARN 配置?

原创 刺史武都 2022-10-25
874

介绍

Apache YARN 是决定如何跨集群执行 MapReduce 作业的管理器。在文章中,仅在配置文件中添加了两个属性,以使配置工作尽可能简单。 这篇文章旨在向您介绍更高级的配置设置,这些设置将使您能够提高 YARN 的性能。但是,在我们着手更改一些属性之前,我们需要更深入地了解该工具的架构。

阿帕奇纱线
来源——yarn.apache.com

Apache YARN 架构

老实说……当我们第一次查看官方 Apache Hadoop 文档以了解Apache YARN 架构时,我们并没有完全理解它。此外,在我们尝试加深对 YARN 的了解时,使用可以在配置文件中更改的属性非常有效。


我们将尝试以全面的方式向您传达我们学习之旅的成果:

Apache YARN 中有几个组件。

资源管理器:每个集群只有一个,他管理整个集群的资源使用情况。

节点管理器:集群的每个节点都有一个,负责管理整个节点内的资源使用情况。节点管理器和资源管理器之间存在通信,因为资源管理器需要随时知道节点上有哪些资源可用。

应用程序:它是从客户端发送到资源管理器的任务。

Application Master:由其中一个节点上的资源管理器运行,负责协调应用程序的运行并与资源管理器通信以执行此操作。通信以下列方式发生:

  • 主应用程序服务器从资源管理器请求资源以运行应用程序。
  • 资源管理器通过向节点管理器请求资源来启动不同节点上的容器。
  • 一旦容器启动,主应用服务器就会提交要执行的作业。
  • 最后,主应用服务器将作业执行结果告诉资源管理器。

容器:如上所述,这是资源管理器在节点上创建的一小块内存和 CPU。它是应用程序的一部分执行的地方。

这是 Apache YARN 的图像,显示了上述组件:

Apache YARN 组件

来源——yarn.apache.com


要求

在我们的例子中,我们在 Hadoop 发行版所在的 /opt/Hadoop 位置创建了一个文件夹,并创建了一个名为 hoop 的用户来拥有该位置。对于 Hadoop 用户,我们创建了移动配置文件的 /opt/Hadoop/config-files 目录。我们假设您已经阅读了上一篇文章,Apache YARN 简介。因此,您必须在 /opt/Hadoop/config-files 文件夹中有 mapred-site.xml 和 yarn-site.xml 配置文件,每个文件中定义一个属性。

自定义配置

我们现在已经准备好了解更改一些可自定义的 YARN 属性的后果。可以更改多个属性,在这篇文章中涵盖所有属性是一项具有挑战性的任务。因此,我们选择了其中的一些来向您介绍最终用户在使用 yarn 时的自定义选项。要访问所有可以自定义的属性,请参阅官方 Apache YARN 文档。


让我们看看 yarn-site.xml 配置文件中可以更改的一些属性:

  • Yarn.Resource manager.hostname:资源管理器主机名。默认值 0.0.0.0。在我们的示例中,默认值不会更改。请注意,保留默认值意味着可以从机器的任何活动网络接口访问该服务。有必要研究默认值是否会在生产环境中出现安全问题。
  • Yarn.Node manager.resource.detect-hardware-capabilities:布尔值,指定节点管理器是否必须启用节点内存和CPU的自动检测。默认为假。在我们的演示中,这设置为 true。
  • Yarn.节点 manager.resource.scores-scores-multiplier:一个数字乘以可以使用前一个纱线得出的物理核心数。节点 manager.resource.detect-hardware-capabilities 属性,还可以通过分数来了解虚拟核心,分数是单位。CPU 组成容器。它默认为 1.0。在我们的示例中,它设置为 3.0。
  • Yarn.节点管理器。Resource.CPU-cores:指定当资源管理器请求创建容器时,节点管理器可以用来创建容器的虚拟CPU的数量。它默认为 -1。当值为 -1 和纱线。节点 manager.resource.detect-hardware-capabilities 为真,分数的数量由硬件自动确定。在我们的演示中,这个属性没有改变。
  • Yarn.节点 manager.resource.system-reserved-memory-MB:为处理系统保留的内存,以 MB 为单位,不包括 YARN。它默认为 -1,计为 20%(系统内存 – 2*HADOOP_HEAPSIZE)。在这个演示中,它设置为 2048。
  • Yarn.scheduler.minimum-allocation-MB:资源管理器中每个容器请求的最小分配(MB)。默认情况下,它是 1024 MB。在我们的示例中,它设置为 512。
  • Yarn.scheduler.maximum-allocation-MB:资源管理器中每个容器请求的最大分配量(MB)。默认情况下,它是 8192 MB。它设置为 2048。
  • Yarn.scheduler.minimum-allocation-scores:资源管理器将分配给应用程序主控器发出的每个容器请求的最小虚拟 CPU 核心数。它默认为 1。使用默认调度程序时将被忽略。由于默认调度程序没有更改,因此在我们的演示中没有设置此属性。
  • Yarn.scheduler.maximum-allocation-scores:资源管理器将分配给应用程序主控器发出的每个容器请求的最大虚拟 CPU 核心数。默认为4。使用默认调度器时不考虑。由于默认调度程序没有更改,因此在我们的演示中没有设置此属性。


查看 YARN 的属性在行动

我们运行 Apache YARN 的本地机器有 6 个物理 CPU 和 16GB 的 RAM。上述属性已添加到 yarn-site.xml 配置文件中。通过执行以下命令启动 Apache YARN:

/opt/Hadoop/Hadoop/bin/start-yarn.sh

运行 MapReduce 作业以查看 Apache YARN 的运行情况。例如,让我们在本地机器上创建一个文件,将其复制到我们的 HDFS,然后使用 MapReduce 将文件从 HDFS 复制到另一个 HDFS 位置(我们假设本地 HDFS 实例正在这里运行):

dd if=/dev/zero of=filename.big bs=1 count=1 seek=1073741823
hdfs dfs -copy from local filename.big hdfs:///
hdfs dfs -mkdir hdfs:///copyed
Hadoop distcp hdfs:///filename.big hdfs:///copied/


进入浏览器http://localhost:8088/cluster查看用户界面:

用户界面


我们想突出显示在用户界面中的七个不同属性,这将使我们能够看到更改某些 YARN 属性的后果:

  • Square 1:指定对应于将文件从一个 HDFS 位置复制到另一个 HDFS 位置所运行的应用程序的数量。
  • Square 2:正在运行的容器数量为 2。
  • Square 3:使用的内存和虚拟内核。如您所见,使用了两个分数。如属性部分所述,如果我们更改了 yarn.scheduler.minimum-allocation-scores 和 yarn.scheduler.minimum-allocation-scores 两个属性,它们将不会被考虑在内,因为我们使用的是默认调度程序。在这里,使用了 2560 MB 的 RAM,这对应于分配给一个容器的 1024 MB 加上分配给另一个容器的 1536 MB(在屏幕截图中不可见,但您可以通过单击字段 7 中的链接轻松查看,然后在容器 ID 上),其值在 yarn.scheduler.minimum-allocation-MB 和 yarn 指定的范围内。调度器。最大分配 MB 属性。
  • Square 4:YARN 可以使用的最大内存和虚拟内核。请注意,虚拟内核为 18,对应于物理内核的数量,即 6,乘以来自 yarn.node manager.resource.scores-scores-multiplier 属性的值(我们将其设置为 3)。请注意,由于纱线的值,物理芯数的计算是正确的。节点 manager.resource.detect-hardware-capabilities 属性设置为 true。
  • Square 5:显示分配给 yarn.scheduler.minimum-allocation-MB 和 yarn 的值。调度器。最低分配分数属性。
  • 方块6:显示yarn.scheduler.maximum-allocation-MB和yarn的默认值。调度器。最大分配分数属性。•
  • Square 7:正在运行的应用程序的 ID。单击它以查看更多执行详细信息。


结论

同样,Apache YARN 还有更多,例如 YARN CLI 和调度程序配置。以下是关键要点:

  • 我们没有完全理解 Apache Hadoop 文档来阅读有关 Apache YARN 架构的信息。此外,在我们尝试加深对 YARN 的了解时,使用可以在配置文件中更改的属性非常有帮助。
  • Apache YARN 架构,我们还没有完全理解。此外,在我们尝试加深对 YARN 的了解时,使用可以在配置文件中更改的属性非常有帮助。
  • 每个集群节点都有一个,负责管理整个节点内的资源使用情况。节点管理器和资源管理器之间存在通信,因为资源管理器需要随时知道节点上有哪些资源可用。

好吧,这是对如何开始自定义此集群管理器的简要介绍。如果您发现它有用,请不要忘记与您的联系人分享。


原文标题:How to Customize Apache YARN Configurations?

原文作者:Gitesh Dhore 

原文地址:https://www.analyticsvidhya.com/blog/2022/10/how-to-customize-apache-yarn-configurations/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论