簡體   English   中英

使用不同的帳戶向Azure添加存儲容器?

[英]Adding a storage container to Azure with different account?

我們正在嘗試為多個Outlook帳戶使用通用數據。 假設數據存儲在屬於data@outlook.com的容器中,我想將其讀作datasc1@outlook.com,我的朋友想從datasc2@outlook.com上讀取。

我有共同帳戶的存儲帳戶名稱,容器名稱(公共容器),但當我嘗試使用Hive讀取數據時,請使用以下命令:

CREATE EXTERNAL TABLE deneme (t1 string, t2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION 'wasb://container@storageaccount.blob.core.windows.net/OUR_DATA.txt';

或者我也嘗試下面的命令

CREATE EXTERNAL TABLE deneme (t1 string, t2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION 'wasb://container@storageaccount.blob.core.windows.net/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://container@storageaccount.blob.core.windows.net/

輸出是:

lsr: DEPRECATED: Please use 'ls -R' instead.
-rwxrwxrwx   1  145391417 2015-05-18 10:58 wasb://container@storageaccount.blob.core.windows.net/OUR_DATA.txt
-rwxrwxrwx   1   25634418 2015-05-18 10:44 wasb://container@storageaccount.blob.core.windows.net/OUR_OTHER_DATA.txt

總結我們的問題是使用我們的Azure帳戶從另一個Azure帳戶讀取數據,使用HDInsight(Hive / PIG / Hadoop)。

提前致謝。

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

CREATE EXTERNAL TABLE deneme (t1 string, t2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
STORED AS TEXTFILE
LOCATION 'wasb://container@storageaccount.blob.core.windows.net/';

我能夠針對配置為“公共容器”的容器創建類似的外部表。

如果您不想使用公共容器,可以直接在Hive腳本中將存儲密鑰包含在配置變量中,如:

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/

我通過在core-site.xml中添加下面提到的屬性來解決了這個問題

<property>
        <name>fs.azure.account.key.<storage account name>.blob.core.windows.net</name>
        <value><account key value></value>
</property>

現在,從azure portal轉到Storage帳戶並將訪問類型更改為“ container ”(默認情況下為“ private ”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM