Databricks / AZURE 中的授权标头问题(到 Blob 存储或 ADLS1 或 ADLS2)

问题描述 投票:0回答:1

由 cousera DP203 上的 Databricks、AZURE 上的 Databricks 托管服务提供的代码:

%fs head /mnt/training/wikipedia/pageviews/pageviews_by_second.tsv

它不起作用。它给出:

AzureException: hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Caused by: StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

为什么他们 - Databricks - 就这样离开而不以适当的方式升级访问路径?

  • 就访问密钥而言,我无法在 AZURE 的安全性方面做太多事情。
  • SAS 可能,但没有说明需要做什么。如果需要做某事为什么不说明呢?遗漏?
  • 可以通过运行
    display(dbutils.fs.ls('/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/'))
    %fs head /databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv
  • 找到它们

我所做的也如下,您可以看到我做了一些更改以使

spark.read
正常工作:

wasbs
已被弃用。

那么,这里的想法是什么?我也可以做

csvFile = "/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv"
,效果很好。

在 Databricks 社区版中,我可以很好地针对

/mnt/training/...
运行查询。

我想知道该得出什么结论。迁移到 ADLS2 后可能缺少更新 Databricks、移动、更改 mnt 点?我并不期望在课程的这个阶段需要 ABFS 来创建挂载点。

apache-spark databricks azure-databricks
1个回答
0
投票

AzureException:hadoop_azure_shaded.com.microsoft.azure.storage.StorageException:服务器无法对请求进行身份验证。确保授权标头的值格式正确,包括签名。 原因是:StorageException:服务器无法验证请求。确保授权标头的值正确形成,包括签名。


出现上述错误的原因可能是创建挂载点时使用了无效的 SAS 令牌,或者所使用的 SAS 令牌被终止。

当您连接到 ADLS1 或 ADLS2 时,它们使用不同的端点来连接 ADLS1 使用

adl
而 ADLS 2 使用
wasbs,abfss

您需要更新特定位置的挂载点。

dbutils.fs.mount(
    source="wasbs://cont_name@storage_acc_name.blob.core.windows.net",
    mount_point="/mnt/blob1",  # Update the mount_point parameter to start with a forward slash
    extra_configs={'fs.azure.sas.cont_name.storage_acc_name.blob.core.windows.net': 'SAS token'}
)

%fs head /mnt/blob/filepath

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.