在 Azure HDInsight 中使用安全传输存储帐户的 Apache Hadoop 群集
需要安全传输功能强制提交到帐户的所有请求都通过安全连接来进行,从而增强 Azure 存储帐户的安全性。 HDInsight 群集 3.6 或更高版本支持此功能和 wasbs 方案。
重要
在创建群集后启用安全存储传输可能会导致使用存储帐户时出错,因此不建议这样做。 最好使用已启用安全传输的存储帐户创建新群集。
存储帐户
Azure 门户
默认情况下,在 Azure 门户中创建存储帐户时,会启用“需要安全传输”属性。
若要使用 Azure 门户更新现有存储帐户,请参阅需要使用 Azure 门户进行安全传输。
PowerShell
对于 PowerShell cmdlet New-AzStorageAccount,请确保将参数 -EnableHttpsTrafficOnly
设置为 1
。
若要使用 PowerShell 更新现有存储帐户,请参阅需要使用 PowerShell 进行安全传输。
Azure CLI
对于 Azure CLI 命令 az storage account create,请确保将 --https-only
参数设置为 true
。
若要使用 Azure CLI 更新现有存储帐户,请参阅需要使用 Azure CLI 进行安全传输。
安全传输错误
如果在创建 HDInsight 群集后不小心启用了“需要安全传输”选项,则可能会看到如下错误消息:
com.microsoft.azure.storage.StorageException: The account being accessed does not support http.
仅对于 Hbase 群集,可尝试以下步骤来还原群集功能:
- 从 Ambari 停止 HBase。
- 从 Ambari 停止 HDFS。
- 在 Ambari 中,导航到“HDFS”-->“配置”-->“高级”-->“fs.defaultFS”
- 将 wasb 更改为 wasbs,并保存它。
- 如果使用加速写入功能,则还需要将 hbase 配置下的“hbase.rootDir”从 wasb 更改为 wasbs。
- 重启所有必需的服务。
添加更多存储帐户
有多个选项可用于添加更多启用了安全传输功能的存储帐户:
- 修改上一部分的 Azure 资源管理器模板。
- 使用 Azure 门户创建一个群集,并指定关联的存储帐户。
- 使用脚本操作向现有的 HDInsight 群集添加更多启用了安全传输功能的存储帐户。 有关详细信息,请参阅向 HDInsight 添加更多存储帐户。
后续步骤
- 使用 Azure 存储 (WASB) 而非 Apache Hadoop HDFS 作为默认数据存储
- 有关 HDInsight 如何使用 Azure 存储的信息,请参阅将 Azure 存储与 HDInsight 配合使用。
- 有关如何将数据上传到 HDInsight 的信息,请参阅将数据上传到 HDInsight。