无法在hdinsight中对非默认容器中的配置单元表远程运行查询

64jmpszr  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(313)

我正在尝试使用linq到配置单元从.net启动配置单元查询。
问题是查询应该在一个外部表上运行,而这个表不在默认的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();

连接成功并创建了一个配置单元作业(我甚至可以看到带有查询的hql文件),但是配置单元作业将上述错误写入stderr。
我已经试着解决这个问题好几个小时了,改变这个和那个,我甚至试过 WebHCatHttpClient 而不是林克,但没有用。。。有什么想法吗?

nwsw7zdq

nwsw7zdq1#

是否确定已创建配置单元表?我不知道原因,但是hive限制只在“local”模式下创建外部表。
可以使用invoke-hive-powershell cmdlet运行配置单元查询(如“select count(*)from”)进行验证。
有关更多powershell或hdinsight.net sdk示例,请参阅http://www.windowsazure.com/en-us/manage/services/hdinsight/submit-hadoop-jobs-programmatically/#hive-sdk。

相关问题