[unixoDBC] [驱动程序管理器]可以打开lib'/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib' :未找到文件

发布于 2025-02-03 07:47:48 字数 2763 浏览 3 评论 0 原文

我试图让Cloudera Impala ODBC在全新的 M1 Mac 上运行。为此,我通过官方MS文档,还遵循 cloudera odbc连接器安装指南

但是,当尝试连接时,我会收到以下错误:

[Error: [odbc] Error connecting to the database] {
  odbcErrors: [
    {
      state: '01000',
      code: 0,
      message: "[unixODBC][Driver Manager]Can't open lib '/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib' : file not found"
    }
  ]
}

我的ODBC安装:

myuser@computer ~ % odbcinst -j
unixODBC 2.3.11
DRIVERS............: /opt/homebrew/etc/odbcinst.ini
SYSTEM DATA SOURCES: /opt/homebrew/etc/odbc.ini
FILE DATA SOURCES..: /opt/homebrew/etc/ODBCDataSources
USER DATA SOURCES..: /Users/myuser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

odbcinst.ini

[ODBC Drivers]
Cloudera ODBC Driver for Impala      = Installed
Cloudera ODBC Driver for Apache Hive = Installed

[Cloudera ODBC Driver for Impala]
Description = Cloudera ODBC Driver for Impala
Driver      = /opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib

[Cloudera ODBC Driver for Apache Hive]
Driver = /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib

odbc.ini

[foobarbinbaz]
Driver=/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
HOST=***
PORT=433
AuthMech=3
UseSASL=0
UID=****
PWD=****
SSL=1
TransportMode=2
HTTPPath=clicervice
CAIssuedCertNamesMismatch=1
TrustedCerts=/opt/cloudera/impalaodbc/lib/universal/cacerts.pem
TSaslTransportBufSize=1000
RowsFetchedPerBlock=10000
SocketTimeout=0
StringColumnLength=32767
UseNativeQuery=0

我检查了什么:

  1. 如果文件/opt>/opt/cloudera/impalaodbc/lib/lib/universal/libclouderaimpalaimpalaimpalaimpalaimpalaompalaodbc.dylib dylib >实际上存在(确实)
  2. 在我的odbc.ini 中互换 driver cloudera odbc driver for Impala 和/opt/cloudera/cloudera/impalaodbc/lib/universal/universal/libclouderaimpalaimpalaimpalaimpalaodbc.dylibbc.dylib (在这两种情况下,都将搜索路径)
  3. 文件/users/myuser/.odbc.ini 实际上是/users/myuser/myuser/library/odbc/的符号链接odbc.ini (但这不应该是问题,对吗
  4. ? /已知 - 驱动器中的事实?view = sql-server-ver15“ rel =“ noreferrer”>已知问题 Microsoft上的文章(但我找不到我的特定问题)
  5. sudo chmod -r a+rw cloudera /opt 目录中

I am trying to get a Cloudera Impala ODBC running on a brand new M1 Mac. To do so, I installed MS ODBC 18 via the official MS documentation and also followed the Cloudera ODBC Connector Install Guide.

However, when trying to connect, I get following error:

[Error: [odbc] Error connecting to the database] {
  odbcErrors: [
    {
      state: '01000',
      code: 0,
      message: "[unixODBC][Driver Manager]Can't open lib '/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib' : file not found"
    }
  ]
}

My ODBC installation:

myuser@computer ~ % odbcinst -j
unixODBC 2.3.11
DRIVERS............: /opt/homebrew/etc/odbcinst.ini
SYSTEM DATA SOURCES: /opt/homebrew/etc/odbc.ini
FILE DATA SOURCES..: /opt/homebrew/etc/ODBCDataSources
USER DATA SOURCES..: /Users/myuser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

odbcinst.ini

[ODBC Drivers]
Cloudera ODBC Driver for Impala      = Installed
Cloudera ODBC Driver for Apache Hive = Installed

[Cloudera ODBC Driver for Impala]
Description = Cloudera ODBC Driver for Impala
Driver      = /opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib

[Cloudera ODBC Driver for Apache Hive]
Driver = /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib

odbc.ini

[foobarbinbaz]
Driver=/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
HOST=***
PORT=433
AuthMech=3
UseSASL=0
UID=****
PWD=****
SSL=1
TransportMode=2
HTTPPath=clicervice
CAIssuedCertNamesMismatch=1
TrustedCerts=/opt/cloudera/impalaodbc/lib/universal/cacerts.pem
TSaslTransportBufSize=1000
RowsFetchedPerBlock=10000
SocketTimeout=0
StringColumnLength=32767
UseNativeQuery=0

What I checked:

  1. If the file /opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib actually exists (it does)
  2. Interchanging Driver in my odbc.ini Cloudera ODBC Driver for Impala and /opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib (in both cases it's gonna search for the path)
  3. The file /Users/myuser/.odbc.ini is actually a symlink to /Users/myuser/Library/ODBC/odbc.ini (but that shouldn't be a problem, right?)
  4. Checked the Known Issues article at Microsoft (but I couldn't find my specific problem)
  5. sudo chmod -R a+rw cloudera inside the /opt directory

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唱一曲作罢 2025-02-10 07:47:48

截至v2.6.11发行了2021-03-26,apache Hive hive 的 cloudera odbc驱动程序在其通用二进制中不包含ARM64组件。我想对于Impala驾驶员也是如此。

$ file /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib: Mach-O universal binary with 2 architectures: [i386:Mach-O dynamically linked shared library i386
- Mach-O dynamically linked shared library i386] [x86_64]
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib (for architecture x86_64):       Mach-O 64-bit dynamically linked shared library x86_64
$ lipo -archs /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib
i386 x86_64

我的系统:

$ sw_vers 
ProductName:    macOS
ProductVersion: 12.5
BuildVersion:   21G72
$ uname -mprsv
Darwin 21.6.0 Darwin Kernel Version 21.6.0: Sat Jun 18 17:07:22 PDT 2022; root:xnu-8020.140.41~1/RELEASE_ARM64_T6000 arm64 arm

直到Cloudera使用ARM64版本更新驱动程序后,该库才能正常工作。

另请参见

As of v2.6.11 released 2021-03-26, the Cloudera ODBC Driver for Apache Hive does not include an ARM64 component in its universal binary. I imagine the same for the Impala driver, too.

$ file /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib: Mach-O universal binary with 2 architectures: [i386:Mach-O dynamically linked shared library i386
- Mach-O dynamically linked shared library i386] [x86_64]
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib (for architecture x86_64):       Mach-O 64-bit dynamically linked shared library x86_64
$ lipo -archs /opt/cloudera/hiveodbc/lib/universal/libclouderahiveodbc.dylib
i386 x86_64

My system:

$ sw_vers 
ProductName:    macOS
ProductVersion: 12.5
BuildVersion:   21G72
$ uname -mprsv
Darwin 21.6.0 Darwin Kernel Version 21.6.0: Sat Jun 18 17:07:22 PDT 2022; root:xnu-8020.140.41~1/RELEASE_ARM64_T6000 arm64 arm

This library won't work until Cloudera updates the driver with an ARM64 version.

See also Hive ODBC driver on m1 Mac.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文