我正在尝试使用Linq to Hive从 .NET 启动 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,但无济于事......有什么想法吗?