【问题标题】:Unable to access a blob within a container with access type "Blob" from my HDInsight cluster无法从我的 HDInsight 群集访问访问类型为“Blob”的容器中的 Blob
【发布时间】:2017-05-18 22:56:56
【问题描述】:

我正在尝试从我的 HDInsight 群集访问具有访问类型“Blob”的容器中的 Blob。但是当我这样做时:-

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

我得到以下异常:

org.apache.hadoop.fs.azure.AzureException: 容器 ** in account **.blob.core.windows.net not found,我们无法使用匿名凭据创建它,也没有找到它们的凭据在配置中。

这是一种预期的行为,我无法使用访问类型“Blob”访问它吗?但如果访问类型是“容器”,则此方法有效。请注意,我的存储帐户未与集群关联,即它未配置为集群中的默认或附加存储帐户。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage azure-hdinsight


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这是一种预期的行为,我无法使用访问类型“Blob”访问它吗?

      如果在访问类型为“Blob”的容器中仅从 Blob 读取数据,这不是预期的行为。

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

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

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

      公共 blob (Blob) 仅允许您在知道确切 URL 的情况下访问 blob。如需更多信息,请参阅Restrict access to containers and blobs

      根据您提到的例外情况,我假设您可能对容器有其他操作,例如容器中的 list blobsget container metadata 等。这些操作对于容器访问类型 Blob 是不允许的,但对于容器类型 Container 是允许的。

      【讨论】:

      • 这是 hadoop 的读取命令,如果他们说 HDInsight 可以使用访问类型“Blob”,那么 HDInsight 应该能够读取它。一件事可能是hadoop HDInsight的API试图从容器中获取更多信息,这就是它失败的原因。
      猜你喜欢
      • 2019-10-14
      • 2021-10-22
      • 2018-05-12
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      相关资源
      最近更新 更多