你当前正在访问 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。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“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 仪表板登录群集的密码。 |
以下代码片段将会执行下述初始步骤:
- 登录到 Azure 帐户。
- 设置要在其中执行创建的操作的活动订阅。
- 为新的部署活动创建新的资源组。
- 创建用户分配的托管标识。
- 将一个扩展添加到 Azure CLI,以使用 Data Lake Storage Gen2 的功能。
- 使用
--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 群集
- 使用脚本操作自定义基于 Linux 的 HDInsight 群集
- 使用 Scala 创建独立的应用程序
- 使用 Apache Livy 在 Apache Spark 群集中远程运行作业
- Apache Spark 和 BI:使用 HDInsight 中的 Spark 和 BI 工具执行交互式数据分析
- Apache Spark 和机器学习:使用 HDInsight 中的 Spark 预测食品检查结果