AzureException:无法使用匿名凭据访问容器,并且在配置中找不到凭据

时间:2015-11-09 01:15:34

标签: azure ubuntu-12.04 hdinsight

我正在尝试使用Azure HDInsight的Hadoop。我通过ssh登录集群并运行以下

hadoop jar jar_name class_name wasb://container@storagename.core.windows.net/inputdir wasb://container@storagename.core.windows.net/outputdir 

但我得到以下例外:

  

线程“main”中的异常org.apache.hadoop.fs.azure.AzureException:   org.apache.hadoop.fs.azure.AzureException:无法访问容器   帐户yyy.core.windows.net中的xxx使用匿名凭据,和   在配置中找不到凭据。

我正在使用azure cli,在运行上面提到的hadoop作业之前我运行了“azure login”。

请告诉我如何解决此错误。

Ubuntu 12.04在这些机器上运行。

PS:在Azure论坛上发布此内容,但在此处重新发布以获得更广泛的受众群体。

4 个答案:

答案 0 :(得分:5)

编辑: 您的存储位置应为wasb://container@storageacctname.blob.core.windows.net/inputdir

听起来您的群集未附加到该存储帐户。重新创建群集,并确保包含jar的帐户已附加到群集。否则,将您的jar移动到已连接的存储帐户!

答案 1 :(得分:1)

使用 Azure Blob 存储的正确格式是

wasbs://<container>@<storage-account-name>.blob.core.windows.net/<directory>/

始终确保以 /

结束您的 wasbs

答案 2 :(得分:0)

此问题已得到解决,我在此处提出答案,以防有人遇到同样的问题。

我犯了几个愚蠢的错误。

1)应该是wasb://@.blob.core.windows.net。我错过了&#39; blob&#39;早。 2)应该有一个尾随&#39; /&#39;。所以它应该是hdfs dfs -ls wasb://data2@dsparqstorage.core.windows.net/

答案 3 :(得分:0)

我遇到了这个错误。

我曾经写

wasb://directory/

代替

wasb://container@storageaccount.blob.core.windows.net/directory/