软件环境
操作系统:Oracle Linux Server release 6.5 64bit
BIEE版本:12.2.1.1.0
Hive版本:Apache Hive 1.2.1
BIEE从11.1.1.7开始就提供了对Hive数据源的支持,自带 DataDirect ODBC的驱动。到了12c,驱动版本升级到了7.1.4(官方文档写的是7.1.5,实际安装之后为7.1.4)。
另外比起11g的变化就是,12c无须额外安装windows上的Hive ODBC驱动来完成rpd的开发,直接安装12c的Admin Tool就已经帮你安装好了 DataDirect的ODBC驱动。
顺带一提的是,12c的Admin Tool只有windows 64位版本了,没有32位版本了。
BIEE的数据源认证文档中写明了只支持Apache和Cloudera的hive发行版,具体大家可以参阅:
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
服务器端配置过程如下:
1.配置环境变量
修改$BI_DOMAIN/config/fmwconfig/bienv/OBIS目录的obis.properties文件,向其中添加如下内容:
LD_LIBRARY_PATH=$FMW/Oracle_Home/bi/common/ODBC/Merant/7.1.4/lib:$LD_LIBRARY_PATH
HADOOP_DLL=$FMW/Oracle_Home/bi/common/ODBC/Merant/7.1.4/lib/ARhive27.so
2.配置ODBC.ini
修改$BI_DOMAIN/bi/config/fmwconfig/bienv/core目录下的odbc.ini
添加如下内容:
[hive]
Driver=$FMW/Oracle_Home/bi/common/ODBC/Merant/7.1.4/lib/ARhive27.so
Description=DataDirect 7.1 Apache Hive Wire Protocol
ArraySize=16384
Database=default
DefaultLongDataBuffLen=1024
EnableDescribeParam=0
HostName=xxxxx
LoginTimeout=30
LogonID=
MaxVarcharSize=2147483647
Password=
PortNumber=10000
RemoveColumnQualifiers=0
StringDescribeType=12
TransactionMode=0
UseCurrentSchema=0
WireProtocolVersion=2
注意:请根据自己的实际情况替换上面的$FMW及$BI_DOMAIN目录
另外,由于hive 1.2.1已经采用了hiveserver2,所以WireProtocolVersion的值应该设置为2
WireProtocolVersion的值为1是指连接hiveserver1,为0表示自动判断hiveserver版本,但是很遗憾的是,我设置为0会提示
[DataDirect][ODBC Apache Hive Wire Protocol driver]General error.Driver was unable to connect to the Server. Please check your Hive Server is running and the Host/Port are configured correctly
3.重启BI Server
$BI_DOMAIN/bi/bitools/bin/stop.sh -i obis1
$BI_DOMAIN/bi/bitools/bin/start.sh -i obis1
windows客户端配置
安装好12.1.1.0的客户端之后,打开控制面板-ODBC数据源管理,添加Hive数据源,驱动类型为Oracle 7.1 Apache Hive Wire Protocol
然后根据自己的情况进行配置,下面是我的配置:
由于我的开发环境中Hive的安全配置是默认配置,所以Security选项页用默认的即可
然后点击左下角的Test
注意:上面的User Name为安装Hive的操作系统用户(默认配置下)
点击Test提示Connection established! 即表示连接成功,保存应用即可。
如果不成功,请telnet到服务器的端口看是否能通,确保hive server已经处于启动状态,
例如采用如下命令:
hive --service hiveserver2
余下的rpd开发就和之前一样了,打开管理工具,导入元数据时选择ODBC3.5,使用刚才的在控制面板中建立的DSN即可。
注意:如果发现能连接,但是不能导入Hive表的情况,可以选择安装hortonworks提供的odbc驱动,链接如下:
Hortonworks ODBC Driver for Apache Hive (v2.1.2)
http://hortonworks.com/downloads/#data-platform 选择windows 64bit的(因为管理工具是64bit的)
参考文档:
Using DataDirect Connect ODBC Drivers on Linux and UNIX