首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为RODBC安装Cloudera Impala ODBC驱动程序

为RODBC安装Cloudera Impala ODBC驱动程序
EN

Stack Overflow用户
提问于 2015-03-22 22:24:19
回答 2查看 3.4K关注 0票数 2

我试图非常小心地遵循安装指南,在mac上为R设置Impala Cloudera ODBC驱动程序,但始终收到以下错误消息:

代码语言:javascript
复制
In odbcDriverConnect("DSN=Impala ODBC Driver") :
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver
Manager]Data source name not found, and no default driver specified

我就是这么做的。对于下面引用的每个文件,我确保该文件存在于该位置。

http://www.cloudera.com/content/cloudera/en/downloads/connectors/impala/odbc/impala-odbc-v2-5-23.html下载并安装Impala ODBC驱动程序

代码语言:javascript
复制
brew install unixodbc
odbcinst -j 

unixODBC 2.3.2
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /Users/summerrae/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

指向DYLD库路径变量:

代码语言:javascript
复制
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/cloudera/impalaodbc/lib/universal

echo "export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/cloudera/impalaodbc/lib/universal/" >> ~/.bashrc

编辑/usr/local/etc/odbc.ini:

代码语言:javascript
复制
[ODBC Data Sources]
# Use this name in your connection string 
Impala DSN=Impala ODBC Driver
[Impala DSN]
# Driver: The location where the ODBC driver is installed to. 
Driver=/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
# Values for HOST, PORT, Database 
HOST=myhost (changed name here for security)
PORT=21050
Database=default

Edited /user/local/etc/odbcinst.ini: 
[ODBC Drivers]
Impala ODBC Driver=Installed
[Impala ODBC Driver]
Description=Impala ODBC Driver
Driver=/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib

编辑/opt/cloudera/impalaodbc/lib/universal/cloudera.impalaodbc.ini:

代码语言:javascript
复制
[Driver]
## - Note that this default DriverManagerEncoding of UTF-15 
## is for unixODBC. 
DriverManagerEncoding=UTF-16
ErrorMessagesPath=/opt/cloudera/impalaodbc/ErrorMessages/
LogLevel=0
LogPath=

## - Note that the path to your ODBC Driver Manager 
## must be specified in DYLD_LIBRARY_PATH.
# unixODBC 
ODBCInstLib=libiodbcinst.dylib

导出路径变量到~/..bashrc:

代码语言:javascript
复制
#add full path to odbc.ini and add to bashrc
export ODBCINI=/usr/local/etc/odbc.ini
echo "export ODBCINI=/etc/odbc.ini" >> ~/.bashrc

#add directory path to odbcinst.ini and add to bashrc
export ODBCSYSINI=/usr/local/etc/
echo "export ODBCSYSINI=/etc/odbcinst.ini" >> ~/.bashrc

#add full path to cloudera.impalaodbc.ini and add to bashrc
export CLOUDERAIMPALAINI=/opt/cloudera/impalaodbc/lib/universal/cloudera.impalaodbc.ini
echo "export CLOUDERAIMPALAINI=/opt/cloudera/impalaodbc/lib/universal/cloudera.impalaodbc.ini" >> ~/.bashrc

在R:

代码语言:javascript
复制
install.packages("RODBC")
library(RODBC)
#connect using impala DSN
conn <- odbcConnect("Impala DSN")

我已经通过了我能找到的每一个教程,以使这一工作。我可以使用Python连接到同一台服务器和参数,也可以使用RImpala连接到同一台服务器,但无法让RImpala包运行查询,因此我知道连接可以工作。任何帮助都是非常感谢的。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-23 01:31:31

结果发现,在yosemite默认情况下,iODBC驱动程序出现了问题。最后,我重新安装了mac操作系统,一切都很顺利。

作为另一种选择,我还发现你可以:

安装mac ODBC管理器

  1. http://www.odbcmanager.net/下载文件
  2. 安装完毕后,从应用程序/实用程序中打开程序
  3. 单击“驱动程序”,然后“添加”
  4. 浏览到黑斑羚驱动程序,默认位置为: /opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
  5. 添加系统DSN
  6. 添加DSN名称,然后单击" Add“
  7. 添加以下两个键值对: 主机your_host_name 21050港
  8. 点击“确定”

使用上面创建的DSN名称连接RODBC。

票数 4
EN

Stack Overflow用户

发布于 2019-09-30 12:41:45

您的问题是,驱动程序安装指向/usr/local/etc文件夹中进行配置,并且您试图修改驱动程序附带的文件。我也遇到了同样的问题,我只是在/usr/local/etc中配置了.ini文件,并且可以连接DNS-less。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29200577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档