【发布时间】:2015-08-14 09:05:34
【问题描述】:
我正在尝试为我的一个项目创建一个 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.
我不知道如何解决这个问题。
【问题讨论】:
-
您找到解决方案了吗?