2014-10-09 76 views
2

我配置了unixODBC使用來自Cloudera的蜂巢連接器在我的Linux Mint的機器, 但我不斷收到以下錯誤嘗試連接(例如,使用isql -v hiveHIVE ODBC連接器設置

S1000][unixODBC][Cloudera][ODBC] (11560) Unable to locate SQLGetPrivateProfileString function. 
[ISQL]ERROR: Could not SQLConnect 

我蜂巢時想我設置/etc/odbcinst.ini和〜/ .odbc.ini的正確方式:

# content of /etc/odbcinst.ini 
[hive] 
Description = Cloudera ODBC Driver for Apache Hive (64-bit) 
Driver=/opt/cloudera/hiveodbc/lib/64/libclouderahiveodbc64.so 
ODBCInstLib=libodbcinst.a(libodbcinst.so.1) 
UsageCount = 1 
DriverManagerEncoding=UTF-16 
ErrorMessagesPath=/opt/cloudera/hiveodbc/ErrorMessages/ 
LogLevel=0 
SwapFilePath=/tmp 

和我的〜/ .odbc.ini文件包含:

[hive] 
Description=Cloudera ODBC Driver for Apache Hive (64-bit) DSN 
Driver = hive 
ErrorMessagesPath=/opt/cloudera/hiveodbc/ErrorMessages/ 
# Values for HOST, PORT, KrbHostFQDN, and KrbServiceName should be set here. 
# They can also be specified on the connection string. 
HOST= <the host> 
PORT= <the port> 
Schema=<the schema> 
# .. etc 

你能幫我找出是什麼導致了錯誤?

+0

這可能會有所幫助:http://stackoverflow.com/questions/13887328/sqlgetprivateprofilestring-failed-with – 2014-10-09 08:58:06

+0

謝謝聲波,但沒有它沒有幫助:)我已經設置了env變量,但錯誤仍然存​​在 – lucacerone 2014-10-10 07:00:32

+0

這是變量LD_LIBRARY_PATH設置? – 2014-10-10 15:07:40

回答

8

什麼

ldd /opt/cloudera/hiveodbc/lib/64/libclouderahiveodbc64.so 

告訴你?

可能是驅動程序未鏈接到libodbcinst.so。

你可以嘗試

LD_PRELOAD=/usr/local/libodbcinst.so 

或任何libodbcinst.so是你的機器上。

+0

謝謝,ldd顯示所有必需的庫鏈接正確... – lucacerone 2014-10-14 05:31:04

+3

LD_PRELOAD =/usr/local/libodbcinst.so解決了我的問題 – myloginid 2015-09-08 07:59:11

+0

也爲我工作。非常感謝。 – leventunver 2017-10-25 10:31:41

0

您確定您的ODBCInstLib設置正確嗎?

我打了Vertica的司機和我libodbcinst.so.1同樣的問題最終需要一個絕對路徑:/usr/lib/x86_64-linux-gnu/libodbcinst.so.1

我確定通過運行查找libodbcinst.so的路徑。