2014-03-04 177 views
0

我试图通过Simba ODBC驱动程序(v 1.0.2)将我的C#应用​​程序连接到Hbase(v 0.94)。我已经配置了ODBC DSN成功地为HBase的休息API,但是当我试图HBase的从代码连接它抛出异常说:Hbase ODBC连接C#

ERROR [HY000] [Simba][ODBC] (10430) Not enough information provided to establish 
a connection to the data source and specified to not prompt for more information. 

但我给下面的连接字符串属性:

 OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); 
     builder.Driver = "Simba Hbase ODBC Driver"; 
     builder.Dsn = "HbaseTest"; 
     builder.Add("Host", "192.168.122.5"); 
     builder.Add("Port", "8080"); 
     builder.Add("MaxFetchRows", "20000000"); 
     builder.Add("DefaultMaxColumnSize", "255"); 
     builder.Add("Sdrl", "128"); 
     builder.Add("Description", "hbase"); 
     builder.Add("SslMode", "Preferred"); 
     builder.Add("User ID", "user"); 
     builder.Add("Password","pass"); 
     var con = new OdbcConnection(builder.ConnectionString.ToString()); 

我已经尝试过不提供凭据,但没有成功。 请引导我在这里,我在这里失去了什么。

回答

0

我不确定这是否仍然是您的问题,但是这表明HBase驱动程序中一个或多个必需的关键字未在连接字符串中提供。

如果您已经设置了您的DSN,并成功地进行了测试,那么你可以用下面的替换代码:

OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); 
    builder.Dsn = "HbaseTest"; 
    var con = new OdbcConnection(builder.ConnectionString.ToString()); 

如果你有一个DSN设置已经,您可以直接使用和使用预配置的设置。如果您尚未设置DSN,请仅使用Driver属性。请注意,使用Driver属性将需要您为ODBC驱动程序提供所有必需的连接设置。

+0

是的,我有一个工作的DSN,但忘记了所有的属性在代码中仅由DSN覆盖。 无论如何,我离开这种方式在C#中使用HBASE连接,而使用C#Thrift API来提高查询性能,因为SIMBA固有地使用REST。 – tom