2013-03-28 61 views
1

我一直在努力運行一個使用Hive ODBC的例子,但目前爲止還沒有成功。使用Hive ODBC的錯誤

我使用Hortonworks的Hive ODBC驅動程序從Win64運行我的java程序。我始終以下面的錯誤結束。

Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length 
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957) 
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114) 
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907) 
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698) 
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354) 
at sun.jdbc.odbc.JdbcOdbcConnection.buildTypeInfo(JdbcOdbcConnection.java:1503) 
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:381) 
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) 
at java.sql.DriverManager.getConnection(DriverManager.java:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:207) 
at inverika.training.hive.HiveODBCClient.main(HiveODBCClient.java:30) 

我從我的搜索收集是什麼,這是關係到微軟的ODBC驅動程序的問題,但沒有找到合適的解決方案。有沒有人對這個問題有所瞭解?欣賞是否有人能提供指針。

或者我想直接從我的Linux VM嘗試ODBC。爲此,我需要Linux Ubuntu的Hive ODBC。我不善於編譯和生成所需的庫。如果有人已經做到這一點,請分享。

感謝您的幫助。

回答

0

我不清楚你的問題。您包含的錯誤消息來自哪裏?您正在使用JDBC驅動程序還是ODBC驅動程序?

假設你正在使用HDP,Linux的ODBC驅動程序都可以在這裏:

http://hortonworks.com/download/download-archives/

+0

感謝您的答覆。我正在使用由Hartonworks提供的用於Windows 64位的ODBC驅動程序,它是從您提到的相同鏈接下載的。我正在Linux VM上運行,直接使用Apache的hive分發(hive-0.9.0)。我正在使用上面的驅動程序從Windows執行Java程序並結束了這個問題。我從窗口使用了JDBC和Thrift,它們工作正常,沒有任何問題 – Rags

+0

您是否實際上從Java程序調用了ODBC驅動程序? – overcoil

+0

是的。我正在使用由HartonWorks提供的Win64 ODBC驅動程序。我也嘗試了MapR提供的那個。但有同樣的問題。 – Rags