我正在尝试使用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论坛上发布此内容,但在此处重新发布以获得更广泛的受众群体。
答案 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/