我在Windows 8系统中安装了单节点 HDInsight Emulator 。我想以编程方式在HDInsight Emulator中提交配置单元查询。请建议我使用 C#提交Hive查询的一些方法。
答案 0 :(得分:2)
您可以使用最新语法传递BasicAuthCredentials:
var creds = new BasicAuthCredential();
creds.UserName = "hadoop";
creds.Password = "";
creds.Server = new Uri("http://localhost:50111");
var jobClient = JobSubmissionClientFactory.Connect(creds);
var hiveJob = new HiveJobCreateParameters()
{
Query = "select * from hivesampletable limit 10;",
StatusFolder = "/samplequeryoutput"
};
var jobResults = jobClient.CreateHiveJob(hiveJob);
答案 1 :(得分:0)
我没有看到一个样本。但您可以在以下位置提交Hive作业的C#.NET SDK示例:
以编程方式提交Hadoop作业 http://www.windowsazure.com/en-us/documentation/articles/hdinsight-submit-hadoop-jobs-programmatically/#hive-sdk
在下面的文章中,您将了解如何创建凭据对象和模拟器的URL:
开始使用HDInsight模拟器 http://www.windowsazure.com/en-us/documentation/articles/hdinsight-get-started-emulator/#powershell
答案 2 :(得分:0)
安装Microsoft .Net API for Hadoop WebClient软件包,此软件包提供functionality,用于使用REST API向集群提交作业:
Install-Package Microsoft.Hadoop.WebClient
创建一个WebHCatHttpClient
对象,并为其提供群集的URL,用户名和密码(以下是默认值):
var client = new WebHCatHttpClient(new Uri("http://localhost:50111"), "hadoop", null);
提交Hive作业,例如列出所有Hive表并将其打印到控制台:
client.CreateHiveJob("show tables;", null, null, "/queryresult", null);
.ContinueWith(httpResponseTask => httpResponseTask.Content.ReadAsStringAsync()
.ContinueWith(outputTask => Console.Out.WriteLine(outputTask.Result)));