AzureException: невозможно получить доступ к контейнеру с использованием анонимных учетных данных, и учетные данные для них не найдены в конфигурации
Я пытаюсь использовать Hadoop из Azure HDInsight. Я вхожу в кластер с помощью 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: невозможно получить доступ к контейнеру xxx в учетной записи yyy.core.windows.net с использованием анонимных учетных данных, и нет Учетные данные найдены для них в конфигурации.
Я использую Azure Cli, и я запустил "Azure Login" перед запуском вышеупомянутого задания Hadoop.
Пожалуйста, дайте мне знать, как я могу исправить эту ошибку.
Ubuntu 12.04 работает на этих машинах.
PS: опубликовал это и на форумах Azure, но разместил его здесь, чтобы привлечь более широкую аудиторию.
4 ответа
РЕДАКТИРОВАТЬ: Ваше хранилище должно быть wasb://container@storageacctname.blob.core.windows.net/inputdir
Похоже, ваш кластер не привязан к этой учетной записи хранения. Создайте заново кластер и убедитесь, что учетная запись, в которой хранится jar-файл, подключена к кластеру. В противном случае перенесите флягу в учетную запись хранения, которая подключена!
Правильный формат для использования хранилища BLOB-объектов Azure:
wasbs://<container>@<storage-account-name>.blob.core.windows.net/<directory>/
Всегда удостоверяйтесь, что заканчиваете свои строки символом /
Эта проблема была решена, и я выкладываю здесь ответ на случай, если кто-то столкнется с той же проблемой.
Я сделал пару глупых ошибок.
1) Это должен быть wasb://@.blob.core.windows.net. Я пропустил "блоб" раньше. 2) Там должен быть трейлинг "/". Так что это должно быть hdfs dfs -ls wasb://data2@dsparqstorage.core.windows.net/
Я столкнулся с этой ошибкой.
Я писал
wasb://directory/
вместо того
wasb://container@storageaccount.blob.core.windows.net/directory/