1.配置hive-site.xml
首先声明一下,这里默认大家已经安装好了hive和sas,没有安装好的请参考网上的教程安装。hive-site.xml是
Hive的配置文件,位于$HIVE_HOME/conf文件夹下,在其中添加如下配置:
Expects one of [nosasl, none, ldap, kerberos, pam, custom]. Client authentication types.
NONE: no authentication check LDAP: LDAP/AD based authentication KERBEROS:
Kerberos/GSSAPI authentication CUSTOM: Custom authentication provider (Use with
property hive.server2.custom.authentication.class) PAM: Pluggable authentication module
NOSASL: Raw transport
远程访问Hive,有好几种身份验证方式,因为我们的Hive服务仅在局域网中访问,简单起见,可以配置为NONE,
也就是不进行身份验证,NONE也是hive.server2.authentication的默认值。
2.确认hiveserver2服务已经运行
hive需要先作为服务运行起来,第三方应用才可以进行连接,使用下面的命令启动hive服务:
1 | hive --service hiveserver2 2018-07-25 11:40:51: Starting HiveServer2 |
这个服务的默认端口号是10000。同时,还提供了一个web UI,默认端口号是10002,可以通过浏览器
直接访问:
3.下载、安装和配置ODBC Connector
可以从这里下载各个版本的HIVE ODBC: http://archive.mapr.com/tools/MapR-ODBC/MapR_Hive/,
这里需要注意下,针对不同的hive版本可能需要使用不同的odbc驱动,大家使用上如果有问题可以几
个版本都试一下。
Windows上odbc安装和配置说明: Install the Hive ODBC Connector on Windows
windows上的安装很简单,一路next,就可以了。
安装完成后从“开始”菜单中找到:MapR Hive ODBC Connector 2.1 (64-bit),打开
64-bit ODBC Administrato,可以看到下面的界面:
点击“添加”
选择“MapR Hive ODBC Connector”,按照下图这样配置,注意修改Hosts为运行Hive服务的主机IP:
Data Source Name:为数据源起的名字
Host(s):hive服务的主机ip
Port:默认是10000,大家根据实际修改
Database:对应hive的库名大家根据实际使用配置
User Name:对应hive机器上分配的linux用户名
点击“Test”, 成功后可以看到下面的界面:
如图所示,成功连接至hive。
4.编写sas程序代码访问Hive
如图,sas连接以odbc的方式连接hive:
libname hive odbc user= XXXXX password=XXXXX datasrc=hiveuat schema= XXXXX;
user:对应之前odbc设置的user
password:我没有配置密码,所以随便填
datasrc:对应之前odbc配置的odbc名
schema:指定读取表结构的库,对应之前odbc的库设置
配置好连接后,就可以用sas的语法查询、分析数据,下图是查询结果:
至此,sas以odbc的方式连接hive就完成了。这种方式对比hadoop的方式可以减少配置,更加方便。