无法访问容器中的blob,访问类型为" Blob"来自我的HDInsight群集

时间:2017-05-18 22:56:57

标签: azure azure-storage azure-storage-blobs hdinsight

我正在尝试访问具有访问类型" Blob"的容器中的blob。来自我的HDInsight群集。但当我这样做时: -

hadoop fs -text wasb://myconatiner@***.blob.core.windows.net/file.csv

我得到以下异常:

  

org.apache.hadoop.fs.azure.AzureException:帐号中的容器**。找不到blob.core.windows.net,我们无法使用anoynomous凭据创建它,也没有找到凭据对于他们的配置。

这是预期的行为,我无法使用访问类型" Blob"?但是,如果访问类型为" Container",则此方法有效。请注意,我的存储帐户未与群集链接,即未将其配置为群集中的默认帐户或其他存储帐户。

2 个答案:

答案 0 :(得分:0)

这是许可问题。您需要将此存储帐户作为附加存储帐户添加到群集中。

答案 1 :(得分:0)

  

这是预期的行为,我无法使用访问类型" Blob"?

访问它

如果只是在具有访问类型" Blob"。

的容器中读取blob中的数据,那么这不是预期的行为。

如果容器访问类型 Blob ,它将对容器中的blob具有只读权限。我们可以从azure tutorial获得更多信息。

  

连接到群集的存储帐户中的容器:由于帐户名称和密钥在创建期间与群集关联,因此您可以完全访问这些容器中的Blob。   存储帐户中未连接到群集的公共容器或公共Blob:您对容器中的Blob具有只读权限。   注意

     

公共容器容器)允许您获取该容器中可用的所有Blob的列表并获取容器元数据。

     

公共blob Blob )仅在您知道确切的网址时才允许您访问blob。有关详细信息,请参阅Restrict access to containers and blobs

根据您提到的例外情况,我假设您可能有其他操作与容器相关,例如容器中的列表blob 获取容器元数据等。容器访问类型 Blob 不允许执行这些操作,但容器类型容器允许使用这些操作。