在 Mac OS X上配置 ODBC
ODBC 驱动程序管理器使用配置文件来定义和配置 ODBC 数据源和驱动程序。为了配置一个 Linux 或 Mac OS X 的 ODBC 连接,完成以下步骤:
- 步骤1:配置环境变量
- 步骤2:在 odbc.ini 中定义 ODBC 数据源
- 步骤3:(可选)在 odbcinst.ini 中定义 ODBC 驱动
- 步骤4:配置 MapR Drill ODBC 驱动
示例配置文件
在 Mac OS X 环境下,通过 ODBC 客户端工具连接到 Drill 之前,除非这些文件存在,否则拷贝以下配置文件在 /opt/mapr/drillobdc/Setup
到你的 home 目录下:
mapr.drillodbc.ini
odbc.ini
odbcinst.ini
在你的 home 目录下,重命名文件作为隐藏文件。必要时,使用 sudo:
- .mapr.drillodbc.ini
- .odbc.ini
- .odbcinst.ini
Mac OS X 安装程序在 odbc.ini 中创建一个简单的 DSN,在以下位置:
- ~/Library/ODBC/odbc.ini
- ~/.odbc.ini
你使用的时候,需要依赖驱动管理器,在这些文件中的一个用户DSN会有效。
重要:在 OS X上,系统和用户的 DSN 在不同的位置,使用不同的 ini 文件。
步骤1:设置环境变量
创建和修改 /etc/launchd.conf
一个文件用于配置环境变量。配置 SIMBAINI 变量到 .mapr.drillodbc.ini
文件,ODBCSYSINI 变量到 .odbcinst.ini
文件,ODBCINI 变量到 .odbc.ini
文件,DYLD_LIBRARY_PATH 动态链接到 MapR Drill ODBC 驱动。如果安装了 iODBC 驱动管理器,使用 DMG,DYLD 库被安装在 /usr/local/iODBC/lib
。launchd.conf 配置示例如下:
setenv SIMBAINI /Users/joeuser/.mapr.drillodbc.ini
setenv ODBCSYSINI /Users/joeuser/.odbcinst.ini
setenv ODBCINI /Users/joeuser/.odbc.ini
setenv DYLD_LIBRARY_PATH /usr/local/iODBC/lib:/opt/mapr/drillodbc/lib/universal
重启 Mac OS X 或者运行 launchctl load /etc/launchd.conf
。
步骤2:在 .odbc.ini 中定义 ODBC 数据源
在你的环境中,定义 ODBC 数据源在 ~/.odbc.ini
配置文件中。为了在嵌入模式中使用 Drill,配置属性如下所示:
ConnectionType=Direct
HOST=localhost
PORT=31010
ZKQuorum=
ZKClusterID=
为了在分布式模式下使用,配置属性如下所示:
ConnectionType=ZooKeeper
HOST=
PORT=
ZKQuorum=<host name>:<port>,<host name>:<port> . . . <host name>:<port>
ZKClusterID=<cluster name in `drill-override.conf`>
以下示例展示在嵌入模式中使用 Drill。
[ODBC]
# Specify any global ODBC configuration here such as ODBC tracing.
[ODBC Data Sources]
Sample MapR Drill DSN=MapR Drill ODBC Driver
[Sample MapR Drill DSN]
# Description: DSN Description.
# This key is not necessary and only describes the data source.
Description=Sample MapR Drill ODBC Driver DSN
# Driver: The location where the ODBC driver is installed.
Driver=/opt/mapr/drillodbc/lib/universal/libmaprdrillodbc.dylib
# The DriverUnicodeEncoding setting is only used for SimbaDM
# When set to 1, SimbaDM runs in UTF-16 mode.
# When set to 2, SimbaDM runs in UTF-8 mode.
#DriverUnicodeEncoding=2
# Values for ConnectionType, AdvancedProperties, Catalog, Schema should be set here.
# If ConnectionType is Direct, include Host and Port. If ConnectionType is ZooKeeper, include ZKQuorum and ZKClusterID
# They can also be specified on the connection string.
# AuthenticationType: No authentication; Basic Authentication
ConnectionType=Direct
HOST=localhost
PORT=31010
ZKQuorum=[Zookeeper Quorum]
ZKClusterID=[Cluster ID]
AuthenticationType=No Authentication
UID=[USERNAME]
PWD=[PASSWORD]
AdvancedProperties=CastAnyToVarchar=true;HandshakeTimeout=5;QueryTimeout=180;TimestampTZDisplayTimezone=utc;ExcludedSchemas=sys,INFORMATION_SCHEMA;NumberOfPrefetchBuffers=5;
Catalog=DRILL
Schema=
属性验证
密码用于保护 DSN,采用验证类型,选择基本认证,并且配置 UID 和 PWD 属性。
直接和 ZooKeeper Quorum 属性
为了在分布式模式下使用 Drill,配置连接类型为 ZooKeeper,从 drill-override.conf
文件中,获取 ZKQuorum 和 ZKClusterID 值,并定义 ZKQuorum 和 ZKClusterID 属性。drill-override.conf
在 /drill/drill-<version>/conf
目录下。ZK 集群的格式如下所示:
<host name/ip address> : <port number>, <host name/ip address> : <port number>, . . .
例如:
ZKQuorum=centos23:5181,centos28:5181,centos29:5181
ZKClusterID=docs41cluster-drillbits
为了在嵌入模式中使用 Drill,不需要定义 ZKQuorum 和 ZKClusterID 属性。启动 Drill 使用 drill-localhost 命令,配置连接类型为直接连接,并定义 HOST 和 PORT 属性。例如:
HOST=centos32.lab:5181
PORT=31010
步骤3:(可选)在 odbcinst.ini 中定义 ODBC 驱动
在 ODBC 驱动中,.odbcinst.ini
是一个可选配置文件。配置文件是一个可选项是因为你可以直接在 .odbc.ini
配置文件中指定驱动。示例配置如下所示:
[ODBC Drivers]
MapR Drill ODBC Driver=Installed
[MapR Drill ODBC Driver]
Description=MapR Drill ODBC Driver
Driver=/opt/mapr/drillodbc/lib/universal/libmaprdrillodbc.dylib
步骤4:配置 MapR Drill ODBC 驱动
配置 MapR Drill ODBC 驱动在你的环境中通过 .mapr.drillodbc.ini
配置文件修改。该配置驱动工作在你的 ODBC 驱动管理器上。配置示例如下所示:
[Driver]
## - Note that this default DriverManagerEncoding of UTF-32 is for iODBC.
DisableAsync=0
DriverManagerEncoding=UTF-32
ErrorMessagesPath=/opt/mapr/drillodbc/ErrorMessages
LogLevel=0
LogPath=
SwapFilePath=/tmp
# iODBC
ODBCInstLib=libiodbcinst.dylib
配置 .mapr.drillodbc.ini
为了配置 MapR Drill ODBC 驱动在 .mapr.drillodbc.ini
配置文件中,需完成以下步骤:
- 在文本编辑器中打开
.mapr.drillodbc.ini
配置文件 - 如果你想启用同步 ODBC 连接,便捷 DisableAsync 配置。改变默认值 0 为 1 来禁止同步和启用同步连接。状态的改变发生在驱动程序初始化和传播到所有 DSN。
- 如果需要,编辑 DriverManagerEncoding 配置。该值默认是 UTF-16 或 UTF-32,但是依赖于驱动管理器的使用。iODBD 使用 UTF-32 和 unixODBC 使用 UTF-16。最后检查你的 ODBC 驱动管理器是否配置正确。
- 编辑
ODBCInstLib
。该值是ODBCInst
共享库的名称,便于你使用 ODBC 驱动。配置文件默认是共享给iODBC
。在 Linux,共享库名称的 iODBC 是libiodbcinst.dylib
。指定绝对或相对文件到库。如果你使用相对文件名,要包含库文件的路径。库文件路径的环境变量为DYLD_LIBRARY_PATH
。 - 保存
mapr.drillodbc.ini
配置文件。