温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
1.文档编写目的
Beeline是HiveServer2提供的一个新的命令行工具,基于SQLLine CLI的JDBC客户端。Beeline有两种模式:嵌入和远程模式。嵌入模式类似于运行Hive CLI,而远程模式可以通过thrift连接。支持连接Hive、MySQL、Oracle、Impala等。本篇文章主要讲述如何使用Beeline连接Impala。
内容概述
1.Impala JDBC驱动部署
2.Beeline命令行测试
3.总结
测试环境
1.CM和CDH版本为5.11.2和5.13.0
2.Kerberos环境和非Kerberos环境
2.Impala JDBC驱动部署
1.下载Impala JDBC驱动包
将驱动包解压至/root/impaladriver目录
[root@ip-172-31-6-148impaladriver]# pwd/root/impaladriver
[root@ip-172-31-6-148impaladriver]# lltotal13576-r--r--r--1root root46725Jun212:46 commons-codec-1.3.jar-r--r--r--1root root60686Jun212:46 commons-logging-1.1.1.jar-r--r--r--1root root7670596Jun212:50 hive_metastore.jar-r--r--r--1root root596600Jun212:50 hive_service.jar-r--r--r--1root root352585Jun212:46 httpclient-4.1.3.jar-r--r--r--1root root181201Jun212:46 httpcore-4.1.3.jar-rw-rw-rw-1root root1581890Jun212:52 ImpalaJDBC41.jar-r--r--r--1root root275186Jun212:46 libfb303-0.9.0.jar-r--r--r--1root root347531Jun212:46 libthrift-0.9.0.jar-r--r--r--1root root367444Jun212:46 log4j-1.2.14.jar-r--r--r--1root root294796Jun212:50 ql.jar-r--r--r--1root root1307923Jun212:50 TCLIServiceClient.jar-r--r--r--1root root792964Jun212:46 zookeeper-3.4.6.jar[root@ip-172-31-6-148impaladriver]#
2.将压缩包内的ImpalaJDBC41.jar和TCLIServiceClient.jar两个jar包拷贝至
/opt/cloudera/parcels/CDH/lib/hive/auxlib目录下
[root@ip-172-31-6-148auxlib]# lltotal2828lrwxrwxrwx1root root48Oct1612:33 hive-exec-1.1.0-cdh5.13.0-core.jar -> ../../../jars/hive-exec-1.1.0-cdh5.13.0-core.jarlrwxrwxrwx1root root34Oct1612:33 hive-exec-core.jar -> hive-exec-1.1.0-cdh5.13.0-core.jar-rw-r--r--1root root1581890Oct2503:14 ImpalaJDBC41.jar-r--r--r--1root root1307923Oct2503:14 TCLIServiceClient.jar[root@ip-172-31-6-148auxlib]# pwd/opt/cloudera/parcels/CDH/lib/hive/auxlib
[root@ip-172-31-6-148auxlib]#
在集群所有的Hive Gateway节点上部署Impala的驱动包。
3.Beeline命令行测试
1.非Kerberos环境下测试
[root@ip-172-31-6-148auxlib]# beeline -d "com.cloudera.impala.jdbc41.Driver" -u "jdbc:impala://ip-172-31-5-190.fayson.com:21050"-dcom.cloudera.impala.jdbc41.Driver -u jdbc:impala://ip-172-31-5-190.fayson.com:21050Connectingto jdbc:impala://ip-172-31-5-190.fayson.com:21050Connectedto: Impala(version2.10.0-cdh5.13.0)Driver:ImpalaJDBC(version02.05.38.1058)Error:[Simba][JDBC](11975)Unsupportedtransaction isolation level: 4.(state=HY000,code=11975)Beelineversion1.1.0-cdh5.13.0 by Apache Hive0:jdbc:impala://ip-172-31-5-190.fayson.com:2> showdatabases;+-------------------+-----------------------------------------------+--+|name|comment|+-------------------+-----------------------------------------------+--+|_impala_builtins|SystemdatabaseforImpala builtin functions |
|default|DefaultHive database |+-------------------+-----------------------------------------------+--+
2rows selected(0.22seconds)0: jdbc:impala://ip-172-31-5-190.fayson.com:2>
2.Kerberos环境下测试
初始化Kerberos账号
[ec2-user@ip-172-31-22-86~]$kinit faysonPasswordforfayson@CLOUDERA.COM:[ec2-user@ip-172-31-22-86~]$klistTicketcache: FILE:/tmp/krb5cc_1000Defaultprincipal: fayson@CLOUDERA.COMValidstarting Expires Service principal10/25/201709:33:26 10/26/2017 09:33:26 krbtgt/CLOUDERA.COM@CLOUDERA.COMrenewuntil11/01/2017 09:33:26[ec2-user@ip-172-31-22-86~]$
[root@ip-172-31-22-86auxlib]# beeline -d "com.cloudera.impala.jdbc41.Driver" -u "jdbc:impala://ip-172-31-26-80.ap-southeast-1.compute.internal:21050/;AuthMech=1;KrbServiceName=impala;KrbRealm=CLOUDERA.COM;KrbHostFQDN=ip-172-31-26-80.ap-southeast-1.compute.internal;"…0:jdbc:impala://ip-172-31-26-80.ap-southeast> showdatabases;+-------------------+-----------------------------------------------+--+|name|comment|+-------------------+-----------------------------------------------+--+|_impala_builtins|SystemdatabaseforImpala builtin functions |
|default|DefaultHive database |
|tpcds_parquet| |
|tpcds_text| |+-------------------+-----------------------------------------------+--+
4rows selected(0.171seconds)0: jdbc:impala://ip-172-31-26-80.ap-southeast>
参数说明:
AuthMech:设置认证类型,1为Kerberos认证。
KrbServiceName:Impala服务器的Kerberos服务主体名称。
KrbHostFQDN:连接Impala所在服务的HostFQDN。
4.总结
使用Beeline连接Impala时需要将Impala的驱动包添加到Hive的lib目录下,否则是无法使用jdbc:impala://hostname:21050连接Impala。
在非Kerberos环境下使用Beeline连接Impala时,指定登录用户无效,无法通过select current_user()获取当前登录用户。
在Kerberos环境下使用Beeline连接Impala时,必须要在jdbc url连接增加AuthMech、KrbServiceName、KrbHostFQDN参数。
具体参考官方文档:
http://www.cloudera.com/documentation/other/connectors/impala-jdbc/latest/Cloudera-JDBC-Driver-for-Impala-Install-Guide.pdf
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
您可能还想看
安装
安全
数据科学
其他
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。