Я пытаюсь запустить запрос Hive из .NET, используя Linq to Hive.
Проблема в том, что запрос должен выполняться во внешней таблице, которой нет в контейнере HDInsight по умолчанию, поэтому я добавил учетные данные контейнера в core-site.xml
и перезапустил демонов Hive.
Однако я получаю следующую ошибку:
Контейнер ... в учетной записи ... не найден, и мы не можем создать его с использованием анонимных учетных данных.
Вот мой код:
var db = new MyHiveDatabase(
new Uri("https://myclustername.azurehdinsight.net"),
username,
password,
nonDefaultStorageAccount, nonDefaultStorageAcountKey);
// I've also tried: defaultStorageAccount, defaultStorageAcountKey
var q = from x in db.ExternalTableName
group x by x.Name
into g
select new {Name = g.Key, Count = g.Count()};
q.ExecuteQuery().Wait();
Соединение устанавливается успешно, и создается задание Hive (я даже вижу файл HQL с запросом), но задание Hive записывает вышеупомянутую ошибку в stderr.
Я пытался решить эту проблему часами, меняя то и это, я даже пробовал WebHCatHttpClient
вместо Linq, но безрезультатно ... Есть идеи?