热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

揭秘ApacheHadoopYARN,第二部分:全局配置基础

原文:UntanglingApacheHadoopYARN,Part2:GlobalConfigurationBasicshttp:blog.cloudera.comblog201

原文:Untangling Apache Hadoop YARN, Part 2: Global Configuration Basics

揭秘Apache Hadoop YARN,第二部分:全局配置基础

http://blog.cloudera.com/blog/2015/10/untangling-apache-hadoop-yarn-part-2/

在本系列的第1部分,我们详情了YARN集群的基本原理。在第2部分中,您将理解在集群上运行的其余组件以及它们如何影响YARN集群配置。

理想的YARN资源分配

上一篇文章所说,YARN集群可以配置为使用集群上的所有资源。

实际的YARN资源分配

在实际情况中,有两个起因不能让YARN使用一律资源:

1.非Apache Hadoop服务也需要在节点上运行(日常开销)。

2.其余与Hadoop相关的组件需要专用资源,不能与YARN共享(如运行CDH时)。

操作系统(日常开销)

任何节点需要一个操作系统才能工作。运行任何操作系统都需要预留少量资源。最常见的Hadoop操作系统是Linux。

Cloudera Manager Agents (管理)

Cloudera Manager是Cloudera的CDH集群管理工具。 Cloudera Manager Agent是在每个工作节点上运行的程序,用于跟踪其运行状况并解决其余管理任务(如配置部署)。

HDFS 集群 (必需) (Master/NameNode, Worker/DataNode)

这篇文章有意地省略了HDFS的任何探讨,HDFS是一个必须的Hadoop组件。对于我们讲述的内容而言,记住以下两点:

  • Master节点守护程序称为NameNode
  • Worker节点守护程序称为DataNode

对于Hadoop安装,Cloudera建议HDFS DataNode和YARN NodeManager在集群中的同一组Worker节点上运行。 DataNode需要预留少量基本资源用于正确的操作。这可以在下面的Figure 1中看到。

揭秘Apache Hadoop YARN,第二部分:全局配置基础

HBase 集群需求 (CDH)

假如集群配置为使用Apache HBase,则应为RegionServer预留每个工作节点上的资源。预留的内存量尽可能大。

Impala 集群需求 (CDH)

假如集群配置为使用Impala,则应为Impala后端守护进程留出每个工作节点上的资源。预留的内存量尽可能大。

YARN NodeManagers (必需)

NodeManager还需要预留少量资源以便正常操作。

分配剩余的资源给YARN

一旦将资源分配给上述各种组件,剩余的可以分配给YARN。 (注意:本文没有具体的建议,由于一个节点的硬件规格随着时间的推移而持续改进,具体数字的例子请参考这个调优指南 http://tiny.cloudera.com/yarn-tuning-guide;还可以参考Tuning the Cluster for MapReduce v2 (YARN) http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_yarn_tuning.html

应用配置

计算最终配置后,可以在yarn-site.xml或者Cloudera Manager的YARN Configuration部分中输入。一旦这些属性配置到集群中,您可以验证它们。

在RM UI中验证YARN配置

如前所述,在ResourceManager有YARN集群上可用资源的快照。

示例:假设您在50个Worker节点上具备以下配置:

1.yarn.nodemanager.resource.memory-mb = 90000

2.yarn.nodemanager.resource.vcores = 60

计算下来你群集的总资源是:

1.memory: 5090GB=4500GB=4.5TB

2.vcores: 5060 vcores= 3000 vcores

在ResourceManager Web UI页面上,集群指标表显示集群的总内存和总vcores,如下图所示:

揭秘Apache Hadoop YARN,第二部分:全局配置基础

容器配置

此时,YARN集群根据资源正确设置。 YARN使用这些资源进行分配,并对集群实施限制。

  • YARN 容器内存限制

最小: yarn.scheduler.minimum-allocation-mb

最大: yarn.scheduler.maximum-allocation-mb

  • YARN 容器VCore 限制

最小: yarn.scheduler.minimum-allocation-vcores

最大: yarn.scheduler.maximum-allocation-vcores

  • YARN 容器分配大小添加值

内存提升: yarn.scheduler.increment-allocation-mb

VCore 提升: yarn.scheduler.increment-allocation-vcores

Container限制及建议值:

  • Memory 属性:

yarn.scheduler.minimum-allocation-mb最低值为0

任何内存大小调整属性必需小于或者等于yarn.nodemanager.resource.memory-mb

最大值必需大于或者等于最小值。

  • VCore 属性:

yarn.scheduler.minimum-allocation-vcores最低值为0

任何vcore大小调整属性必需小于或者等于yarn.nodemanager.resource.vcores

最大值必需大于或者等于最小值

对yarn.scheduler.increment-allocation-vcores的建议值为1。较高的值可能比较白费。

注意,在YARN配置中有少量非常易犯的错误。假如容器内存请求最小值(yarn.scheduler.minimum-allocation-mb)大于每个节点(yarn.nodemanager.resource.memory-mb)可用的内存,那么YARN将不可能满足该请求。相似参数有yarn.scheduler.minimum-allocation-vcores。

MapReduce 配置

Map任务内存属性为mapreduce.map.memory.mb。 Reduce任务的内存属性是mapreduce.reduce.memory.mb。因为这两种类型的任务必需适合容器,所以该值应小于容器最大大小。 (我们不会详细详情Java和影响启动Java虚拟机的YARN属性,它们可能会在以后的文章中探讨)。

ApplicationMaster内存配置

属性yarn.app.mapreduce.am.resource.mb用于设置ApplicationMaster的内存大小。因为ApplicationMaster必需适合容器,该属性应小于容器最大值

总结

本文主要内容:

1.理解YARN专用群集情况下的基本群集配置。

2.实际在开始配置YARN群集时,要考虑到其它服务,防止将所有资源分配给YARN,考虑以下配置:

操作系统开销(Linux,Windows)

管理服务,例如Cloudera Manager Agent

必要的服务,如HDFS

Master/Worker服务(HBase,Impala)

剩余资源给YARN。

3.知道在哪里查看集群的配置。

4.理解需要进一步调整基于在群集上运行的应用程序的分析。还有请注意可能有其余配置开销没有列在此帖中。

下一步

第三部分我们将详情YARN的基本调度。


推荐阅读
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 深入解析Spark核心架构与部署策略
    本文详细探讨了Spark的核心架构,包括其运行机制、任务调度和内存管理等方面,以及四种主要的部署模式:Standalone、Apache Mesos、Hadoop YARN和Kubernetes。通过本文,读者可以深入了解Spark的工作原理及其在不同环境下的部署方式。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • 优化使用Apache + Memcached-Session-Manager + Tomcat集群方案
    本文探讨了使用Apache、Memcached-Session-Manager和Tomcat集群构建高性能Web应用过程中遇到的问题及解决方案。通过重新设计物理架构,解决了单虚拟机环境无法真实模拟分布式环境的问题,并详细记录了性能测试结果。 ... [详细]
  • 本文详细介绍了如何配置Apache Flume与Spark Streaming,实现高效的数据传输。文中提供了两种集成方案,旨在帮助用户根据具体需求选择最合适的配置方法。 ... [详细]
author-avatar
手机用户2502938867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有