在 HDInsight 中的 Apache Hadoop 群集上使用空边缘节点

了解如何将空边缘节点添加到 HDInsight 群集。 空边缘节点是安装并配置了与头节点中相同的客户端工具的 Linux 虚拟机。 但没有运行 Apache Hadoop 服务。 可以使用该边缘节点来访问群集、测试客户端应用程序和托管客户端应用程序。

可以将空边缘节点添加到现有 HDInsight 群集,或者在创建群集时将此类节点添加到新群集。 添加空边缘节点的操作是使用 Azure 资源管理器模板完成的。 以下示例演示如何使用模板执行此操作:

"resources": [
    {
        "name": "[concat(parameters('clusterName'),'/', variables('applicationName'))]",
        "type": "Microsoft.HDInsight/clusters/applications",
        "apiVersion": "2015-03-01-preview",
        "dependsOn": [ "[concat('Microsoft.HDInsight/clusters/',parameters('clusterName'))]" ],
        "properties": {
            "marketPlaceIdentifier": "EmptyNode",
            "computeProfile": {
                "roles": [{
                    "name": "edgenode",
                    "targetInstanceCount": 1,
                    "hardwareProfile": {
                        "vmSize": "{}"
                    }
                }]
            },
            "installScriptActions": [{
                "name": "[concat('emptynode','-' ,uniquestring(variables('applicationName')))]",
                "uri": "[parameters('installScriptAction')]",
                "roles": ["edgenode"]
            }],
            "uninstallScriptActions": [],
            "httpsEndpoints": [],
            "applicationType": "CustomApplication"
        }
    }
],

如示例中所示,可以选择调用脚本操作来执行其他配置。 例如,在边缘节点中安装 Apache Hue。 脚本操作脚本必须可在 Web 上公开访问。 例如,如果该脚本存储在 Azure 存储中,请使用公共容器或公共 blob。

边缘节点虚拟机大小必须满足 HDInsight 群集工作节点 vm 的大小要求。 有关建议的工作节点 vm 的大小信息,请参阅在 HDInsight 中创建 Apache Hadoop 群集

创建边缘节点后,可以使用 SSH 连接到该节点,并运行客户端工具访问 HDInsight 中的 Hadoop 群集。

警告

安装在空边缘节点上的自定义组件将从 Azure 得到商业上合理的支持。 这或许可解决遇到的问题。 或者也可参考社区资源,获取更多帮助。 以下是一些可获得社区帮助的最活跃站点:

如果使用的是 Apache 技术,可通过 https://apache.org 上的 Apache 项目站点(如 Apache Hadoop 站点)获取帮助。

重要

Ubuntu 映像可在发布后的 3 个月内用于创建新的 HDInsight 群集。 自 2019 年 1 月起,运行的群集(包括边缘节点)不进行自动修补。 客户必须使用脚本操作或其他机制来修补正在运行的群集。 有关详细信息,请参阅针对 HDInsight 的 OS 修补

将边缘节点添加到现有群集

本部分介绍如何使用 Resource Manager 模板将边缘节点添加到现有 HDInsight 群集。 可以在 GitHub 中找到 Resource Manager 模板。 资源管理器模板调用位于 https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.hdinsight/hdinsight-linux-add-edge-node/scripts/EmptyNodeSetup.sh 的脚本操作。该脚本不执行任何操作。 它只是演示如何从资源管理器模板调用脚本操作。

  1. 选择以下图像登录到 Azure,并在 Azure 门户中打开 Azure 资源管理器模板。

    Deploy to Azure button for new cluster

  2. 配置以下属性:

    属性 说明
    订阅 选择用于创建此群集的 Azure 订阅。
    资源组 选择用于现有 HDInsight 群集的资源组。
    位置 选择现有 HDInsight 群集的位置。
    群集名称 输入现有 HDInsight 群集的名称。
  3. 选中“我同意上述条款和条件”,然后选择“购买”以创建边缘节点。

重要

请确保选择现有 HDInsight 群集的 Azure 资源组。 否则,会收到错误消息“无法对嵌套资源执行请求的操作。 父资源 '<ClusterName>' 未找到。”

创建群集时添加边缘节点

本部分介绍如何使用 Resource Manager 模板创建包含边缘节点的 HDInsight 群集。 可以在 Azure 快速启动模板库中找到资源管理器模板。 资源管理器模板调用位于 https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.hdinsight/hdinsight-linux-with-edge-node/scripts/EmptyNodeSetup.sh 的脚本操作。该脚本不执行任何操作。 它只是演示如何从资源管理器模板调用脚本操作。

  1. 创建一个 HDInsight 群集(如果没有)。 请参阅开始在 HDInsight 中使用 Hadoop

  2. 选择以下图像登录到 Azure,并在 Azure 门户中打开 Azure 资源管理器模板。

    Deploy to Azure button for new cluster

  3. 配置以下属性:

    属性 说明
    订阅 选择用于创建此群集的 Azure 订阅。
    资源组 创建用于群集的新资源组。
    位置 选择资源组的位置。
    群集名称 输入要创建的新群集的名称。
    群集登录用户名 输入 Hadoop HTTP 用户名。 默认名称为 admin
    群集登录密码 输入 Hadoop HTTP 用户密码。
    SSH 用户名 输入 SSH 用户名。 默认名称为 sshuser
    SSH 密码 输入 SSH 用户密码。
    安装脚本操作 保留默认值以在本文的所有操作中使用。

    某些属性已硬编码在模板中:群集类型、群集工作节点计数、边缘节点大小和边缘节点名称。

  4. 选中“我同意上述条款和条件”,然后选择“购买”,以创建包含该边缘节点的群集。

添加多个边缘节点

可以向一个 HDInsight 群集添加多个边缘节点。 只能使用 Azure 资源管理器模板进行多边缘节点配置。 请参阅本文开头的模板示例。 更新“targetInstanceCount”,以反映要创建的边缘节点数

访问边缘节点

边缘节点 ssh 终结点为 < 边缘节点名称 >.< 群集名称 >-ssh.azurehdinsight.cn:22。 例如,new-edgenode.myedgenode0914-ssh.azurehdinsight.cn:22。

在 Azure 门户上,边缘节点显示为应用程序。 门户中提供了使用 SSH 访问边缘节点时所需的信息。

验证边缘节点 SSH 终结点

  1. 登录到 Azure 门户
  2. 打开包含边缘节点的 HDInsight 群集。
  3. 选择“应用程序”。 此时显示该边缘节点。 默认名称为 new-edgenode
  4. 选择该边缘节点。 此时显示 SSH 终结点。

在边缘节点上使用 Hive

  1. 使用 SSH 连接到边缘节点。 有关信息,请参阅将 SSH 与 HDInsight 配合使用

  2. 使用 SSH 连接到边缘节点后,使用以下命令打开 Hive 控制台:

    hive
    
  3. 运行以下命令显示群集中的 Hive 表:

    show tables;
    

删除边缘节点

可以在 Azure 门户中删除边缘节点。

  1. 登录到 Azure 门户
  2. 打开包含边缘节点的 HDInsight 群集。
  3. 选择“应用程序”。 此时显示边缘节点的列表。
  4. 右键单击要删除的边缘节点,并选择“删除”
  5. 请选择“是”以确认。

后续步骤

本文介绍了如何添加边缘节点以及如何访问边缘节点。 若要了解详细信息,请参阅以下文章: