你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 Azure CLI 创建使用 Data Lake Storage Gen2 的群集

若要创建将 Data Lake Storage Gen2 用作存储的 HDInsight 群集,请执行以下步骤。

先决条件

  • 如果不熟悉 Azure Data Lake Storage Gen2,请查阅概述部分
  • 如果没有 Azure 帐户,请在继续前注册免费帐户
  • 若要运行 CLI 脚本示例,可以使用下列三种方法:
    • 在 Azure 门户中使用 Azure Cloud Shell(见下一部分)。
    • 单击各代码块右上角的“试运行”按钮,使用嵌入的 Azure Cloud Shell。
    • 如果喜欢使用本地 CLI 控制台,请安装最新版 Azure CLI(2.0.13 或更高版本)。 借助 Azure CLI,使用与要在其下部署用户分配的托管标识的 Azure 订阅关联的帐户通过 az login 登录到 Azure。

Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 显示 Azure Cloud Shell 的“试用”示例的屏幕截图。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 用于启动 Azure Cloud Shell 的按钮。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要使用 Azure Cloud Shell,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块(或命令块)上的“复制”按钮以复制代码或命令。

  3. 在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。

  4. 选择“Enter”运行代码或命令。

警告

HDInsight 群集是基于分钟按比例计费,而不管用户是否使用它们。 请务必在使用完群集之后将其删除。 请参阅如何删除 HDInsight 群集

可以下载示例模板文件下载示例参数文件。 在使用下面的模板和 Azure CLI 代码片段之前,请将以下占位符替换为其正确值:

占位符 说明
<SUBSCRIPTION_ID> Azure 订阅的 ID
<RESOURCEGROUPNAME> 要在其中创建新群集和存储帐户的资源组。
<MANAGEDIDENTITYNAME> 将在启用了 Azure Data Lake Storage Gen2 的存储帐户上为其授予权限的托管标识的名称。
<STORAGEACCOUNTNAME> 将要创建的启用了 Azure Data Lake Storage Gen2 的新存储帐户。
<FILESYSTEMNAME> 此群集应在存储帐户中使用的文件系统的名称。
<CLUSTERNAME> 你的 HDInsight 群集的名称。
<PASSWORD> 你选择的使用 SSH 及 Ambari 仪表板登录群集的密码。

以下代码片段将会执行下述初始步骤:

  1. 登录到 Azure 帐户。
  2. 设置要在其中执行创建的操作的活动订阅。
  3. 为新的部署活动创建新的资源组。
  4. 创建用户分配的托管标识。
  5. 将一个扩展添加到 Azure CLI,以使用 Data Lake Storage Gen2 的功能。
  6. 使用 --hierarchical-namespace true 标志创建启用了 Data Lake Storage Gen2 的新存储帐户。
az login
az account set --subscription <SUBSCRIPTION_ID>

# Create resource group
az group create --name <RESOURCEGROUPNAME> --location eastus

# Create managed identity
az identity create -g <RESOURCEGROUPNAME> -n <MANAGEDIDENTITYNAME>

az extension add --name storage-preview

az storage account create --name <STORAGEACCOUNTNAME> \
    --resource-group <RESOURCEGROUPNAME> \
    --location eastus --sku Standard_LRS \
    --kind StorageV2 --hierarchical-namespace true

接下来,登录到门户。 将新的用户分配的托管标识添加到存储帐户上的“存储 Blob 数据所有者”角色。 此步骤在使用 Azure 门户的步骤 3 中已描述。

重要

请确保你的存储帐户具有用户分配的具有“存储 Blob 数据所有者”角色权限的标识,否则群集创建将失败。

az deployment group create --name HDInsightADLSGen2Deployment \
    --resource-group <RESOURCEGROUPNAME> \
    --template-file hdinsight-adls-gen2-template.json \
    --parameters parameters.json

清理资源

完成本文后,可以删除群集。 有了 HDInsight,便可以将数据存储在 Azure 存储中,因此可以在群集不用时安全地删除群集。 此外,还需要为 HDInsight 群集付费,即使不用也是如此。 由于群集费用数倍于存储空间费用,因此在群集不用时删除群集可以节省费用。

输入以下命令中的全部或部分来删除资源:

# Remove cluster
az hdinsight delete \
    --name $clusterName \
    --resource-group $resourceGroupName

# Remove storage container
az storage container delete \
    --account-name $AZURE_STORAGE_ACCOUNT \
    --name $AZURE_STORAGE_CONTAINER

# Remove storage account
az storage account delete \
    --name $AZURE_STORAGE_ACCOUNT \
    --resource-group $resourceGroupName

# Remove resource group
az group delete \
    --name $resourceGroupName

故障排除

如果在创建 HDInsight 群集时遇到问题,请参阅访问控制要求

后续步骤

你已成功创建 HDInsight 群集。 现在可以了解如何使用群集了。

Apache Spark 群集

Apache Hadoop 群集

Apache HBase 群集