azure 无法从我的HDInsight群集访问访问类型为“Blob”的容器内的Blob

m528fe3b  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(162)

我正在尝试从我的HDInsight集群访问访问类型为“Blob”的容器中的Blob。但是当我做一个:-
hadoop fs -text wasb://myconatiner@*.blob.core.windows.net/file.csv
我得到以下异常:
org.apache.hadoop.fs.azure.AzureException:找不到帐户**.blob.core.windows.net中的容器**,我们无法使用匿名凭据创建它,并且在配置中找不到它们的凭据。
所以这是一个预期的行为,我不能访问它与访问类型“Blob”?但如果访问类型为“容器”,则可以使用此方法。请注意,我的存储帐户未与群集链接,即未在群集中配置为默认或附加存储帐户。

3qpi33ja

3qpi33ja1#

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

zwghvu4y

zwghvu4y2#

所以这是一个预期的行为,我不能访问它与访问类型“Blob”?
如果只是在访问类型为“Blob”的容器时从Blob读取数据,这不是预期的行为。
如果容器访问类型为Blob,则对容器中的Blob具有只读权限。我们可以从Azure教程中获得更多信息。
连接到群集的存储帐户中的容器:由于在创建过程中帐户名和密钥与集群相关联,因此您可以完全访问这些容器中的blob。未连接到群集的存储帐户中的公共容器或公共blob:您对容器中的blob具有只读权限。注意

Public containersContainer)可以获取该容器中所有可用的blob列表,并获取容器元数据。
公共BlobBlob)允许您仅在知道确切URL的情况下访问Blob。有关详细信息,请参阅Restrict access to containers and blobs

根据你提到的异常,我假设你可能有其他操作要对容器做,比如列出容器中的blob或者获取容器元数据等。容器访问类型Blob不允许这些操作,但容器类型Container允许。

相关问题