通过 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。
- 如果喜欢使用本地 CLI 控制台,请安装最新版 Azure CLI(2.0.13 或更高版本)。 借助 Azure CLI,使用与要在其下部署用户分配的托管标识的 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 仪表板登录群集的密码。 |
以下代码片段将会执行下述初始步骤:
- 登录到 Azure 帐户。
- 设置要在其中执行创建操作的活动订阅。
- 为新的部署活动创建新的资源组。
- 创建用户分配的托管标识。
- 将一个扩展添加到 Azure CLI,以使用 Data Lake Storage Gen2 的功能。
- 使用
--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 群集
- 使用脚本操作自定义基于 Linux 的 HDInsight 群集
- 使用 Scala 创建独立的应用程序
- 使用 Apache Livy 在 Apache Spark 群集中远程运行作业
- Apache Spark 和 BI:使用 HDInsight 中的 Spark 和 BI 工具执行交互式数据分析
- Apache Spark 和机器学习:使用 HDInsight 中的 Spark 预测食品检查结果