如何在HDInsight模拟器中使用C#以编程方式提交Hive查询?

时间:2014-02-24 05:05:07

标签: c# hive hdinsight

我在Windows 8系统中安装了单节点 HDInsight Emulator 。我想以编程方式在HDInsight Emulator中提交配置单元查询。请建议我使用 C#提交Hive查询的一些方法。

3 个答案:

答案 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)));