无法从我的 HDInsight 群集访问访问类型为"Blob"的容器中的 Blob



我正在尝试从我的 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"访问它吗?但是,如果访问类型为"容器",则此方法有效。请注意,我的存储帐户未与群集链接,即它未配置为群集中的默认或附加存储帐户。

这是权限问题。需要将此存储帐户作为其他存储帐户添加到群集。

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

如果只是在访问类型为"Blob"的容器中读取数据,则不是预期的行为。

如果容器访问类型Blob,它将对容器中的 Blob 具有只读权限。我们可以从 azure 教程中获取详细信息。

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

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

仅当知道确切的 URL 时,才允许使用公共 Blob访问 Blob。有关详细信息,请参阅限制对容器和 Blob 的访问。

根据您提到的异常,我假设您可能还有其他操作要与容器有关,例如列出容器中的blob获取容器元数据等。容器访问类型Blob不允许执行这些操作,但容器类型"容器"允许执行这些操作。

最新更新