你当前正在访问 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。 Screenshot that shows an example of Try It for Azure Cloud Shell.
转到 https://shell.azure.com 或选择启动 Cloud Shell 按钮可在浏览器中打开 Cloud Shell。 Button to launch Azure Cloud Shell.
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 Screenshot that shows the Cloud Shell button in the Azure portal

若要使用 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 群集