gpt4 book ai didi

azure - 如何使用不同的帐户将存储容器添加到Azure?

转载 作者:行者123 更新时间:2023-12-01 10:40:47 26 4
gpt4 key购买 nike

我们正在尝试为多个 Outlook 帐户使用通用数据。假设数据存储在属于 [email protected] 的容器中我想将其读为 datasc [email protected] ,我的 friend 想阅读[email protected] .

我有普通帐户的存储帐户名称、容器名称(这是公共(public)容器),但是当我尝试使用以下命令使用 Hive 读取数据时:

CREATE EXTERNAL TABLE deneme (t1 string, t2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION 'wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="680b07061c0901060d1a281b1c071a090f0d090b0b071d061c460a04070a460b071a0d461f01060c071f1b46060d1c" rel="noreferrer noopener nofollow">[email protected]</a>/OUR_DATA.txt';

或者我也尝试下面的命令

CREATE EXTERNAL TABLE deneme (t1 string, t2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION 'wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aecdc1c0dacfc7c0cbdceedddac1dccfc9cbcfcdcdc1dbc0da80ccc2c1cc80cdc1dccb80d9c7c0cac1d9dd80c0cbda" rel="noreferrer noopener nofollow">[email protected]</a>/OUR_DATA.txt?sig=ACCESS_KEY_OF_CONTAINER';

我收到以下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.fs.azure.AzureException Uploads to to public accounts using anonymous access is prohibited.)

我们尝试了一些方法,我们将容器类型设置为“Public Blob”,但不起作用。我们将帐户添加到存储帐户默认目录中,但它也不起作用。我尝试使用 PIG 加载数据,它似乎可以工作,但是当我转储时,PIG 也失败了。

对我来说,一件奇怪的事情是,当我在 Hadoop 命令行上运行下面的代码时,它运行得很好:

hadoop fs -lsr wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4625292832272f28233406353229342721232725252933283268242a2924682529342368312f282229313568282332" rel="noreferrer noopener nofollow">[email protected]</a>/

输出是:

lsr: DEPRECATED: Please use 'ls -R' instead.
-rwxrwxrwx 1 145391417 2015-05-18 10:58 wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b4d7dbdac0d5dddad1c6f4c7c0dbc6d5d3d1d5d7d7dbc1dac09ad6d8dbd69ad7dbc6d19ac3dddad0dbc3c79adad1c0" rel="noreferrer noopener nofollow">[email protected]</a>/OUR_DATA.txt
-rwxrwxrwx 1 25634418 2015-05-18 10:44 wasb://co<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="204e5441494e45526053544f524147454143434f554e540e424c4f420e434f52450e57494e444f57530e4e4554" rel="noreferrer noopener nofollow">[email protected]</a>/OUR_OTHER_DATA.txt

总而言之,我们的问题是使用 HDInsight (Hive/PIG/Hadoop) 从另一个 Azure 帐户与我们的 Azure 帐户读取数据。

最佳答案

如果您只指向文件夹而不是特定文件,它是否有效? Hive 期望位置是文件夹路径,而不是特定文件。

CREATE EXTERNAL TABLE deneme (t1 string, t2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c9aaa6a7bda8a0a7acbb89babda6bba8aeaca8aaaaa6bca7bde7aba5a6abe7aaa6bbace7bea0a7ada6bebae7a7acbd" rel="noreferrer noopener nofollow">[email protected]</a>/';

我能够针对配置为“公共(public)容器”的容器创建类似的外部表。

如果您不想使用公共(public)容器,可以直接在 Hive 脚本中将存储 key 包含在配置变量中,例如:

set fs.azure.account.key.storageaccount.blob.core.windows.net=ACCESS_KEY_OF_CONTAINER;

或者,您可以在配置时使用自定义创建向导的其他存储帐户部分或使用 Add-AzureHDInsightStorage cmdlet 来配置集群,并具有对存储帐户的访问权限。在创建集群之前修改集群配置。

本文提供了大量有关 HDInsight 和 Azure Blob 存储之间交互的相关信息:http://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-use-blob-storage/

关于azure - 如何使用不同的帐户将存储容器添加到Azure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30318457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com