【问题标题】:HIVE ODBC connector settingsHIVE ODBC 连接器设置
【发布时间】:2014-10-09 08:29:53
【问题描述】:

我将 unixodbc 配置为在我的 Linux Mint 机器中使用来自 cloudera 的 hive 连接器, 但我在尝试连接到 hive 时不断收到以下错误(例如使用isql -v hive

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

你能帮我找出导致错误的原因吗?

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/13887328/…
  • 感谢 sonic,但没有帮助 :) 我已经设置了 env 变量,但错误仍然存​​在
  • 这个变量 LD_LIBRARY_PATH 设置了吗?
  • @sonic 是的,它已设置

标签: hadoop odbc hive cloudera unixodbc


【解决方案1】:

做什么

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

给你看?

可能是驱动没有链接到libodbcinst.so。

你可以试试

LD_PRELOAD=/usr/local/libodbcinst.so

或 libodbcinst.so 在您的计算机上的任何位置。

【讨论】:

  • LD_PRELOAD=/usr/local/libodbcinst.so 为我解决了问题
  • 也为我工作。非常感谢。
【解决方案2】:

您确定您的 ODBCInstLib 设置正确吗?

我在使用 Vertica 驱动程序时遇到了同样的问题,我的 libodbcinst.so.1 最终需要一个绝对路径:/usr/lib/x86_64-linux-gnu/libodbcinst.so.1

我通过对 libodbcinst.so 运行 Find 来确定路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2014-02-21
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多