Nor*_*man 5 odbc unixodbc cloudera
我正在尝试让 Cloudera Impala ODBC 在全新的M1 Mac上运行。为此,我通过官方 MS 文档安装了 MS ODBC 18 ,并遵循了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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我检查的内容:
/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib确实存在(确实存在)Driver在我的 odbc.ini 中交换Cloudera ODBC Driver for Impala(/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib在这两种情况下它都会搜索路径)/Users/myuser/.odbc.ini实际上是一个符号链接/Users/myuser/Library/ODBC/odbc.ini(但这应该不是问题,对吧?)sudo chmod -R a+rw cloudera/opt目录内自 2021 年 3 月 26 日发布的 v2.6.11 起,适用于 Apache 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
Run Code Online (Sandbox Code Playgroud)
我的系统:
$ 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
Run Code Online (Sandbox Code Playgroud)
在 Cloudera 使用 ARM64 版本更新驱动程序之前,该库将无法工作。
| 归档时间: |
|
| 查看次数: |
1070 次 |
| 最近记录: |