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

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

先决条件

  • 如果不熟悉 Azure Data Lake Storage Gen2,请查阅概述部分

  • 如果你没有 Azure 帐户,请注册一个试用订阅,然后继续。

  • 若要运行 CLI 脚本示例,请执行以下操作:

    • 如果喜欢使用本地 CLI 控制台,请安装最新版 Azure CLI(2.0.13 或更高版本)。 借助 Azure CLI,使用与要在其下部署用户分配的托管标识的 Azure 订阅关联的帐户通过 az login 登录到 Azure。

警告

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 cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.
az account set --subscription <SUBSCRIPTION_ID>

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

# 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 chinaeast --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 群集