作者:冯庆煜
1.文档编写目的
Aqua Data Studio是一款完整IDE的数据库开发工具,它提供3种主要功能:数据查询与管理工具。比对数据工具与源控制和文件系统的整合工具。帮助你创建,编辑和执行 SQL 的管理工具脚本编写,以及浏览和修改数据库组织。对所有主要关系的数据库提供一个一致的界面。这准许数据库主管或者开发者从一个应用程序同时地处理多个的任务。本篇文章主要介绍如何安装 Aqua Data Studio及访问安全环境下的Hive和Impala。
- 测试环境
1.CM和CDH版本为6.3.4
2.RedHat 7.6
3.集群已启用 Kerberos
4.OpenLADP 2.4.44-23.el7_9
5.Aqua Data Studio版本18.0.19
2.安装kerberos Windows客户端
1.下载Kerberos客户端
代码语言:javascript复制http://web.mit.edu/kerberos/dist/#kfw-4.1
2.安装Kerberos客户端
一直下一步,选“Typical”,“No”
3.配置环境变量
安装完了Kerberos客户端会自动的在path里面加上了自己的目录,但是如果windows本地安装了Oracle JDK ,该JDK里面也带了一些 kinit, klist 等命令,所以需要把 Kberberos的环境变量调整得靠前一点,如图所示:
打开cmd或者powershell,如果是下图则为正确。
4.配置客户端的hosts解析,确保通过hostname能够正常访问集群
文件路径:C:WindowsSystem32driversetchosts
5.修改krb5.ini配置信息,内容如下:
文件路径:C:ProgramDataMITKerberos5krb5.ini
将Kerberos KDC所在主机的/etc/krb5.conf文件有选择的粘贴到windows的krb5.ini里面
代码语言:javascript复制[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = MACRO.COM
[realms]
MACRO.COM = {
kdc = hadoop99.macro.com
admin_server = hadoop99.macro.com
}
[domain_realm]
.macro.com = MACRO.COM
macro.com = MACRO.COM
6.修改浏览器配置,使浏览器可以访问启用Kerberos认证的web界面
目前只实现如何配置火狐Firefox浏览器,在火狐浏览器上访问Hadoop的Web UI。
谷歌 mac-os-x参考:
https://superuser.com/questions/488095/google-chrome-on-mac-os-x-with-kerberos
打开浏览器,在地址栏输入about:config,如图所示:
点击我了解此风险继续,在搜索栏内,搜索network.negotiate-auth.trusted-uris,双击将其值修改为集群节点ip或主机名,注意:这里如果修改为主机名的话,到时候访问的话,就以主机名访问,ip的话会失效,不起作用。
搜索network.auth.use-sspi,将值改为false。
3.Kerberos认证
用cmd或者powershell,登录kerberos账号,生成ticket cache。
代码语言:javascript复制kinit -c C:Usersfeng8krb5cc_feng userkrb
其中krb5cc_feng后面的feng是当前系统的用户名,如果没改,默认是krb5cc_administrator
4.Aqua Data Studio配置JDBC驱动
更换驱动前,关闭Aqua Data Studio。ADS随附了Apache Hive JDBC驱动程序的1.0.1版。这四个Apache Hive JDBC驱动程序文件位于以下位置:
其中 [ADS_INSTALL] 是Aqua Data Studio的安装目录
代码语言:javascript复制[ADS_INSTALL]libdrivershive-exec.jar
[ADS_INSTALL]libdrivershive-jdbc.jar
[ADS_INSTALL]libdrivershive-metastore.jar
[ADS_INSTALL]libdrivershive-service.jar
上面对应4个jar包删除或移除到其他文件夹备份
注意:重命名是无效的,您必须删除这些文件或将它们移到[ADS_INSTALL]之外的目录中
(对于使用Impala和HiveServer2的用户)需要
代码语言:javascript复制TCLIServiceClient.jar
ImpalaJDBC41.jar
HiveJDBC41.jar
hive_service.jar
hive_metastore.jar
其中CDP中位置/opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6626826/jars有hive_service.jar、hive_metastore.jar
5.替换不限制jce的JRE安全文件
下载地址:
代码语言:javascript复制http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
替换目录:
代码语言:javascript复制D:Aqua Data Studio 18.0 - 64bitjrelibsecurity
6.配置datastudio.ini运行参数
将以下JVM参数添加到Windows的Aqua Data Studio datastudio.ini文件
代码语言:javascript复制vmarg.5=-Dsun.security.krb5.debug=true
vmarg.6=-Dsun.security.jgss.debug=true
vmarg.7=-Djava.security.krb5.realm=MACRO.COM
vmarg.8=-Djava.security.krb5.kdc=hadoop99.macro.com
vmarg.9=-Djava.security.krb5.conf=C:ProgramDataMITKerberos5krb5.ini
vmarg.10=-Djava.security.auth.login.config= C:ProgramDataMITKerberos5jaas.conf
vmarg.11=-Djavax.security.auth.useSubjectCredsOnly=false
7.配置jaas.conf配置文件
根据您的发行版,创建一个名为jaas.conf的文件,其内容指定如下。该文件应该位于为Java属性-Djava.security.auth.login.config指定的同一目录中。
8.启动连接测试
直接打开
点击测试连接
成功后,点保存即可。
8.1测试 hive
8.2测试 impala
9.Debug模式
工具提供了debug启动方式,不同在于可以看到kerberos的调试信息,用于连接失败时可以排查问题。
如果需要debug,需要修改datastudio-bundled.bat启动脚本
注意:这些参数都在一行内,不能换行。
双击打开(前提是要修改了kerberos启动参数)
测试连接时,会打印kerberos的连接信息
例如:登录,报错
经排查,是时间不对,应该是服务器端ntp和客户端时间对应不上,结果一查,结果是服务器端时间慢半小时。停掉ntp服务,更新时间,再启动服务。然后就正常了
10.参考文档
驱动
代码语言:javascript复制https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation17/page/Apache-Hive-JDBC-Drivers/Apache-Hive-JDBC-Drivers
Kerberos
代码语言:javascript复制http://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation18/page/Kerberos-Configuration/Kerberos-Configuration
https://cloud.tencent.com/developer/article/1380570
oracle jdk bug:
代码语言:javascript复制https://bugzilla.redhat.com/show_bug.cgi?id=1243337
无限制256位加密包下载地址:
代码语言:javascript复制http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
unsupported key type found the default TGT: 18
代码语言:javascript复制https://blog.csdn.net/tom_fans/article/details/89197875
kerberos报错:Clock skew too great(37)
代码语言:javascript复制https://www.cnblogs.com/yadongliang/p/13868153.html