2017-05-18 32 views
0

我想從我的HDInsight羣集訪問訪問類型爲「Blob」的容器內的Blob。但是,當我做: -無法訪問我的HDInsight羣集中訪問類型爲「Blob」的容器內的Blob

Hadoop的FS -text wasb://[email protected]***.blob.core.windows.net/file.csv

我得到以下異常:

org.apache.hadoop.fs.azure.AzureException:無法找到帳戶**。blob.core.windows.net中的容器**,我們無法使用匿名憑據創建它,並且沒有找到它們的憑據配置。

所以這是一個預期的行爲,我不能訪問它與訪問類型「Blob」?但是,如果訪問類型是「容器」,這將起作用。請注意,我的存儲帳戶未與羣集鏈接,即未將其配置爲羣集中的默認或額外存儲帳戶。

回答

0

這是權限問題。您需要將此存儲帳戶作爲附加存儲帳戶添加到羣集。

0

那麼這是一個預期的行爲,我不能訪問它與訪問類型「Blob」?

如果只是在訪問類型爲「Blob」的容器中讀取blob中的數據,那麼這不是預期的行爲。

如果容器訪問類型爲Blob,它將對容器中的blob具有隻讀權限。我們可以從azure tutorial獲得更多信息。

連接到羣集的存儲帳戶中的容器:由於帳戶名稱和密鑰在創建期間與羣集相關聯,因此您可以完全訪問這些容器中的blob。 未連接到羣集的存儲帳戶中的公用容器或公用Blob:您對容器中的Blob具有隻讀權限。 注意

公共容器集裝箱),讓你得到,在該容器中所有可用的blob的列表,並獲得容器的元數據。

公共斑點斑點)僅允許您,如果你知道確切的URL訪問的斑點。有關更多信息,請參閱Restrict access to containers and blobs

根據你提到的例外,我認爲你可能有其他業務做容器,例如列表斑點在容器或獲取容器元等,這些操作是不允許用容器訪問類型Blob,但允許使用容器類型容器

+0

這是hadoop的讀取命令,如果他們說HDInsight可以使用訪問類型「Blob」,那麼HDInsight應該能夠讀取它。有一件事可能是,hadoop HDInsight的API試圖從容器中獲取更多信息,這就是它失敗的原因。 – Harinder