c# - 使用 .Net 应用程序连接到 HIVE

标签 c# .net hadoop hive odbc

我正在尝试为我的一个项目创建一个 POC,它允许我使用 ODBC 连接字符串连接到 HIVE。

我已成功使用 DSN 方法连接到 HIVE。但这对我不起作用,因为我需要允许在运行时创建连接,连接源可以从一台主机更改为另一台主机。

我正在使用从 http://www.codeproject.com/Tips/738141/How-to-Communicate-to-Hadoop-via-Hive-using-NET-Cs 中获取的以下连接字符串(使用 Microsoft ODBC 驱动程序)

var conn = new OdbcConnection {
    ConnectionString = @
    "DRIVER={Microsoft Hive ODBC Driver};
Host=<IP>;
Port=10000;
User Name=root;Password=<PWD>;
Database=default;
HiveServerType=2;
ApplySSPWithQueries=1;
TrustedCerts=C:\Program Files\Microsoft Hive ODBC Driver\lib\cacerts.pem;
AsyncExecPollInterval=100;
AuthMech=0;
CAIssuedCertNamesMismatch=0;"
}

using(conn) {
    conn.Open();
    DataTable dt = new DataTable();
    OdbcCommand cmd = conn.CreateCommand();
    cmd.CommandText =
        "SELECT * FROM categories;";

    DbDataReader dr = await cmd.ExecuteReaderAsync();
    dt.Load(dr);
}

当我尝试打开连接时,出现网络超时。

ERROR [HY000] [Microsoft][HiveODBC] (34) Error from Hive: ETIMEDOUT.

我不确定如何解决这个问题。

最佳答案

我找到了解决方案。您缺少用户名,连接字符串中的密码更改如下:

     ConnectionString = @"
                        Dsn=Sample Microsoft Hive DSN;
                        applysspwithqueries=1;asyncexecpollinterval=100;
                        authmech=3;binarycolumnlength=32767;
                        caissuedcertnamesmismatch=0;
                        decimalcolumnscale=10;
                        gettableswithquery=0;
                        host=*******;
                        port=10000;
                        rowsfetchedperblock=10000;
                        trustedcerts={C:\Program Files (x86)\Microsoft Hive ODBC Driver\lib\cacerts.pem};
                        Schema=default;
                        uid=************;
                        pwd=************"

关于c# - 使用 .Net 应用程序连接到 HIVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006305/

相关文章:

c# - NAudio - 暂停,然后继续

.net - 如何实现异步运行的可重用命名管道监听器?

python - Pyhdfs copy_from_local 导致提供节点名或服务名,或未知错误

hadoop - 如何从 HDFS 执行 MapReduce 程序(例如 WordCount)并查看输出?

c# - SMO 中的连接超时

c# - 显示Windows Dialog后如何处理?

c# - 组合框 ItemSsource 未与 ViewModel 中的数据绑定(bind)

.net - 2000/XP机器,哪个Visual Studio + .NET Framework?

.net - .Net 框架中是否有系统错误代码的枚举?

java - Hadoop/Rubydoop + Cloud⁹ : Found class, 但接口(interface)是预期的