我正在尝试访问具有访问类型" 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",则此方法有效。请注意,我的存储帐户未与群集链接,即未将其配置为群集中的默认帐户或其他存储帐户。
答案 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 不允许执行这些操作,但容器类型容器允许使用这些操作。