Compartir a través de

HDInsight 中的 Apache Hadoop 体系结构

Apache Hadoop 包括两个核心组件:提供存储的 Apache Hadoop 分布式文件系统(HDFS)和提供处理的 Apache Hadoop Yet Another Resource Negotiator (YARN)。 借助存储和处理功能,群集能够运行 MapReduce 程序来执行所需的数据处理。

注释

HDFS 通常不会部署在 HDInsight 群集中以提供存储。 Hadoop 组件使用了与 HDFS 兼容的接口层。 实际存储功能由Azure 存储或Azure Data Lake Storage提供。 对于 Hadoop,在 HDInsight 群集上运行的 MapReduce 作业就像 HDFS 存在一样,因此无需更改来支持其存储需求。 在 HDInsight 上的 Hadoop 中,存储是外包的,但 YARN 处理仍然是一个核心组件。 有关详细信息,请参阅 Azure HDInsight 简介

本文介绍 YARN 以及如何协调 HDInsight 上的应用程序执行。

Apache Hadoop YARN 基础知识

YARN 在 Hadoop 中管理和协调数据处理。 YARN 有两个核心服务,这些服务在群集中的节点上作为进程运行:

  • ResourceManager
  • NodeManager

ResourceManager 向 MapReduce 作业等应用程序授予群集计算资源。 ResourceManager 将这些资源授予为容器,其中每个容器都包含 CPU 核心和 RAM 内存的分配。 如果将群集中可用的所有资源组合在一起,然后在块中分发核心和内存,则每个资源块都是容器。 群集中的每个节点都有一定数量的容器的容量,因此群集对可用的容器数有固定限制。 容器中的资源分配可配置。

当 MapReduce 应用程序在群集上运行时,ResourceManager 会向应用程序提供要在其中执行的容器。 ResourceManager 跟踪正在运行的应用程序的状态、可用的群集容量,并在应用程序完成并释放其资源时跟踪应用程序。

ResourceManager 还运行 Web 服务器进程,该进程提供用于监视应用程序状态的 Web 用户界面。

当用户提交 MapReduce 应用程序以在群集上运行时,应用程序将提交到 ResourceManager。 反过来,ResourceManager 在可用的 NodeManager 节点上分配容器。 NodeManager 节点是应用程序实际执行的位置。 分配的第一个容器运行名为 ApplicationMaster 的特殊应用程序。 此 ApplicationMaster 负责获取运行提交的应用程序所需的后续容器形式的资源。 ApplicationMaster 检查应用程序的阶段,例如地图阶段和化简阶段,以及需要处理多少数据的因素。 然后,ApplicationMaster 代表应用程序从 ResourceManager 请求资源(协商)。 ResourceManager 反过来会将群集中的 NodeManagers 中的资源授予 ApplicationMaster,以便在执行应用程序时使用。

NodeManagers 运行构成应用程序的任务,然后将进度和状态报告回 ApplicationMaster。 ApplicationMaster 将应用程序的状态报告回 ResourceManager。 ResourceManager 将任何结果返回到客户端。

YARN 在 HDInsight 上

所有 HDInsight 群集类型都部署 YARN。 ResourceManager 被部署为高可用性配置,包括一个主实例和一个辅助实例,分别运行在集群的第一个和第二个头节点上。 一次只有 ResourceManager 的一个实例处于活动状态。 NodeManager 实例在群集中的可用工作器节点上运行。

Azure HDInsight上的Apache YARN。

软删除

若要从存储帐户取消删除文件,请参阅:

Azure 存储

第 2 代 Azure Data Lake Storage

Azure Data Lake Storage Gen2 已知问题

垃圾清除

fs.trash.interval HDFS>高级核心站点中的属性应保留默认值0,因为不应在本地文件系统上存储任何数据。 此值不会影响远程存储帐户(WASB、ADLS GEN1、ABFS)

后续步骤