HDInsight 的工作原理

已完成

HDInsight 是一种在设计上就高度可用且安全的云分布式数据处理系统。 此系统的核心是 Apache Hadoop。 Apache Hadoop 包括两个核心组件:提供存储功能的 Apache Hadoop 分布式文件系统 (HDFS),以及提供处理功能的 Apache Hadoop Yet Another Resource Negotiator (YARN)。 此外,还有用于处理和分析数据的简单 MapReduce 编程模型。 MapReduce 的优势在于易于设置,可以通过自动缩放功能控制成本。

A conceptual view of the HDInsight architecture

存储

预配 HDInsight 群集时,不会自动创建存储部分。 存储部分是由 Azure 存储或 Azure Data Lake 等与 HDFS 兼容的系统预配的。 通过将存储与处理层分离,可以安全删除用于计算的 HDInsight 群集而不会丢失用户数据。 添加 HDInsight 群集时,必须定义默认文件系统。 可以根据需要链接到文件系统和取消对其的链接,以增加存储大小。

以下信息特定于 HDInsight 3.6 和更高版本。 在 HDInsight 群集创建过程中,除少数例外情况,可以选择 Azure 存储或 Azure Data Lake Storage Gen2 作为默认文件系统。 提供默认文件系统可确保在搜索文件时可以解析相关的文件引用。 对于 Azure 存储,应将 blob 容器指定为默认文件系统。

HDInsight storage options

大多数设置都采用 Azure Data Lake Storage Gen2。 这一类型的设置采用与 Hadoop、Microsoft Entra 集成和基于 POSIX 的访问控制列表 (ACL) 兼容的文件系统核心功能。 可以使用 Azure Blob 存储来实现向后兼容性,但强烈建议尽可能使用 Azure Data Lake Storage Gen2。

处理

处理数据时,HDInsight 上的 Hadoop 群集的计算部分划分为两个逻辑区域。 头(主)节点和工作器节点。 头(主)节点负责接受和管理客户端请求,然后将请求向下传递到工作器节点以执行数据处理。 通常有两个主节点。 用于管理客户端连接的主动主节点。 第二个是在主动主节点脱机时提供复原能力的被动主节点。

HDInsight node types

工作器节点负责处理主节点已分配给它的数据。 所托管的数据取决于 MapReduce 编程模型如何定义使用数据的方式以及主节点分配工作的方式。 头节点和工作器节点都可以直接连接到本地连接的分布式文件系统 (DFS),也都可以访问 Azure Blob 或 Azure Data Lake 中存储的数据。

从 OSS 的角度来看,HDInsight 群集的资源管理功能由 YARN 执行。 此服务管理你在处理数据时所采用的资源和作业计划。 它毗连 HDInsight 群集的 HDFS 和计算系统。 该服务可与其他 OSS 技术结合使用,确保用于处理 HDInsight 作业的资源可用。 YARN 与头节点协同工作,跨群集工作器节点分配作业,从而确保并行运行数据处理作业。

HDFS、YARN 和 MapReduce 是 HDInsight 上的 Hadoop 所需的三个核心服务。 通常,使用其他 OSS 技术可以更轻松地创建解决方案。 例如,可以使用 Hive 作为抽象层。 它基于 MapReduce,使你能够编写 SQL 类型的语言构造来执行临时的数据处理和分析。 或者,可以使用 Apache Ambari 监视 HDInsight 群集。