是否可以在本地安装 HDInsight 服务器时使用 Hadoop SDK,尤其是 LINQ to Hive。请注意,我指的不是 Azure 上托管的 HDInsight 服务。
我尝试使用 Microsoft.Hadoop.Hive Nuget 包中的 LINQ to Hive,但无法使其正常工作,因为 LINQ to Hive 似乎要求将结果存储在 Azure Blob 存储中,而不是存储在我的托管实例中。
var hiveConnection = new HiveConnection(new Uri("http://hadoop-poc.cloudapp.net:50111"), "hadoop", "hgfhdfgh", "hadoop", "hadooppartner", "StorageKey");
var metaData = hiveConnection.GetMetaData().Result;
var result = hiveConnection.ExecuteQuery(@"select * from customer limit 1");
即使使用存储密钥,我也无法使其工作,因为 MapReduce 作业失败并显示:
AzureException: org.apache.hadoop.fs.azure.AzureException: Container a7e3aa39-75ba-4cc2-a8aa-301257018146 in account hadooppartner not found, and we can't create it using anoynomous credentials.
我还再次将凭据添加到core-site.xml
文件中,如下所示:
<property>
<name>fs.azure.account.key.hadooppartner.blob.core.windows.net</name>
<value>Credentials</value>
</property>
但是,如果可能的话,我宁愿摆脱在 Azure 存储上存储结果。
谢谢您的帮助!