温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
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驱动包
下载地址:https://downloads.cloudera.com/connectors/impala_jdbc_2.5.41.1061.zip
将驱动包解压至 /root/impaladriver目录
[root@ip-172-31-6-148 impaladriver]# pwd/root/impaladriver
[root@ip-172-31-6-148 impaladriver]# lltotal 13576-r--r--r-- 1 root root 46725 Jun 2 12:46 commons-codec-1.3.jar-r--r--r-- 1 root root 60686 Jun 2 12:46 commons-logging-1.1.1.jar-r--r--r-- 1 root root 7670596 Jun 2 12:50 hive_metastore.jar-r--r--r-- 1 root root 596600 Jun 2 12:50 hive_service.jar-r--r--r-- 1 root root 352585 Jun 2 12:46 httpclient-4.1.3.jar-r--r--r-- 1 root root 181201 Jun 2 12:46 httpcore-4.1.3.jar-rw-rw-rw- 1 root root 1581890 Jun 2 12:52 ImpalaJDBC41.jar-r--r--r-- 1 root root 275186 Jun 2 12:46 libfb303-0.9.0.jar-r--r--r-- 1 root root 347531 Jun 2 12:46 libthrift-0.9.0.jar-r--r--r-- 1 root root 367444 Jun 2 12:46 log4j-1.2.14.jar-r--r--r-- 1 root root 294796 Jun 2 12:50 ql.jar-r--r--r-- 1 root root 1307923 Jun 2 12:50 TCLIServiceClient.jar-r--r--r-- 1 root root 792964 Jun 2 12:46 zookeeper-3.4.6.jar[root@ip-172-31-6-148 impaladriver]#
2.将压缩包内的ImpalaJDBC41.jar和TCLIServiceClient.jar两个jar包拷贝至
/opt/cloudera/parcels/CDH/lib/hive/auxlib目录下
[root@ip-172-31-6-148 auxlib]# lltotal 2828lrwxrwxrwx 1 root root 48 Oct 16 12:33 hive-exec-1.1.0-cdh5.13.0-core.jar -> ../../../jars/hive-exec-1.1.0-cdh5.13.0-core.jarlrwxrwxrwx 1 root root 34 Oct 16 12:33 hive-exec-core.jar -> hive-exec-1.1.0-cdh5.13.0-core.jar-rw-r--r-- 1 root root 1581890 Oct 25 03:14 ImpalaJDBC41.jar-r--r--r-- 1 root root 1307923 Oct 25 03:14 TCLIServiceClient.jar[root@ip-172-31-6-148 auxlib]# pwd/opt/cloudera/parcels/CDH/lib/hive/auxlib
[root@ip-172-31-6-148 auxlib]#
在集群所有的Hive Gateway 节点上部署Impala的驱动包。
3.Beeline命令行测试
1.非Kerberos环境下测试
[root@ip-172-31-6-148 auxlib]# beeline -d "com.cloudera.impala.jdbc41.Driver" -u "jdbc:impala://ip-172-31-5-190.fayson.com:21050"-d com.cloudera.impala.jdbc41.Driver -u jdbc:impala://ip-172-31-5-190.fayson.com:21050Connecting to jdbc:impala://ip-172-31-5-190.fayson.com:21050Connected to: Impala (version 2.10.0-cdh5.13.0)Driver: ImpalaJDBC (version 02.05.38.1058)Error: [Simba][JDBC](11975) Unsupported transaction isolation level: 4. (state=HY000,code=11975)Beeline version 1.1.0-cdh5.13.0 by Apache Hive0: jdbc:impala://ip-172-31-5-190.fayson.com:2> show databases;+-------------------+-----------------------------------------------+--+| name | comment |+-------------------+-----------------------------------------------+--+| _impala_builtins | System database for Impala builtin functions |
| default | Default Hive database |+-------------------+-----------------------------------------------+--+
2 rows selected (0.22 seconds)0: jdbc:impala://ip-172-31-5-190.fayson.com:2>
2.Kerberos环境下测试
初始化Kerberos账号
[ec2-user@ip-172-31-22-86 ~]$ kinit faysonPassword for fayson@CLOUDERA.COM: [ec2-user@ip-172-31-22-86 ~]$ klistTicket cache: FILE:/tmp/krb5cc_1000Default principal: fayson@CLOUDERA.COM
Valid starting Expires Service principal10/25/2017 09:33:26 10/26/2017 09:33:26 krbtgt/CLOUDERA.COM@CLOUDERA.COM
renew until 11/01/2017 09:33:26[ec2-user@ip-172-31-22-86 ~]$
[root@ip-172-31-22-86 auxlib]# 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> show databases;+-------------------+-----------------------------------------------+--+| name | comment |+-------------------+-----------------------------------------------+--+| _impala_builtins | System database for Impala builtin functions |
| default | Default Hive database |
| tpcds_parquet | |
| tpcds_text | |+-------------------+-----------------------------------------------+--+
4 rows selected (0.171 seconds)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干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操