DBeaver下载
DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。
由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,包括:Windows、Linux、macOS 等。DBeaver 采用 Eclipse 框架开发,支持插件扩展,并且提供了许多数据库管理工具:ER 图、数据导入/导出、数据库比较、模拟数据生成等。
DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持各种 NoSQL 和大数据平台:MongoDB、InfluxDB、Apache Cassandra、Redis、Apache Hive 等。
DBeaver 社区版可以通过官方网站或者 Github 进行下载。两者都为不同的操作系统提供了安装包或者解压版,可以选择是否需要同时安装 JRE。另外,官方网站还提供了 DBeaver 的 Eclipse 插件,可以在 Eclipse 中进行集成。
本系列文章中示例了DBeaver如何链接大数据平台中的Phoenix、Hive等,JDK版本均为1.8版本,最新的DBeaver最低jdk已经到11了,所以在下载Dbeaver时选择不太新的6.x版本即可,本文使用6.3.5版本。
然后进行安装点击NEXT下一步即可!
环境配置
DBeaver链接Kerberos下的Phoenix,首先需要修改启动配置,加载kerberos的krb5等相关配置。
1.修改dbeaver.ini
打开dbeaver安装目录,找到dbeaver.ini文件进行编辑,在原来配置文件后面添加如下内容:
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.auth.login.config=D:/program/dbeaver/kerberos/jaas.conf
-Djava.security.krb5.conf=D:/program/dbeaver/kerberos/krb5.conf
-Dsun.security.krb5.debug=true
说明:
- 可以事先在dbeaver安装目录下新建kerberos目录,把krb5.conf文件和jaas.conf放进去
- jaas.conf文件可以自行新建
- krb5.conf文件需要到大数据集群中获取
- 注意配置目录中一定用"/",配置错会导致找不到配置krb5文件
jaas.conf文件内容如下:
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=false
keyTab=".\\kerberos\\hadoop.keytab"
principal="hadoop";
};
com.sun.security.jgss.krb5.initiate {
com.sun.security.auth.module.Krb5LoginModule required
renewTGT=false
doNotPrompt=true
useKeyTab=true
keyTab=".\\kerberos\\hadoop.keytab"
principal="hadoop"
storeKey=true
useTicketCache=false;
};
说明:
- keyTab配置为访问phoenix时业务用户,keytab文件需要到集群中获取,放置在dbeaver的kerberos目录下
- principal填写keytab认证用户即可
keytab文件和krb5文件获取
在我司自己的产品中对key文件下载进行了封装,登录DataEngine大数据平台后,到集群管理->安全管理->用户管理界面(前提是已经创建了用户并进行了赋权),找到所要下载用户,下载后得到对应用户的认证keytab文件和集群krb5文件:
然后将文件解压后放置上上述配置的目录中即可!
特别注意
在个别版本的dbeaver中不能使用自带的jre环境,需要配置到本地的jre才可以正常使用,笔者在正常使用遇到无法load krb5.conf的问题,尝试了多种办法发现需要更改为本地jdk才可以正常使用。
修改dbeaver.ini配置文件,添加如下配置:
-vm
D:\program\jdk\bin
修改后dbeaver.ini配置内容为:
-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426
-vm
D:\program\jdk\bin
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
-Xms64m
-Xmx1024m
-Djava.security.auth.login.config=D:/program/dbeaver/kerberos/jaas.conf
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=D:/program/dbeaver/kerberos/krb5.conf
-Dsun.security.krb5.debug=true
依赖文件准备
从集群中获取Phoenix的驱动包和配置文件以及服务端的keytab文件,具体步骤为:
1. 获取Phoenix客户端驱动
登录到大数据集群主机任意节点(前提是安装了HBase和Phoenix),到/usr/hdp/3.0.1.0-187/phoenix/目录下:
下载phoenix-5.0.0-cdh6.2.0-client.jar到本地
2. 下载配置文件
登录大数据集群节点后,在/etc/hadoop/conf目录下找到hdfs-site.xml和core-site.xml配置文件下载到本地:
然后到/etc/hbase/conf目录找到hbase-site.xml也下载到本地:
3. 将下载好的配置文件放入驱动包中
使用WinRAR打开phoenix-5.0.0-cdh6.2.0-client.jar驱动包,将hdfs-site.xml和core-site.xml以及hbase-site.xml放入压缩包中:
然后保存关闭即可。
4. 下载服务端hbase的认证文件
在phoenix的URL链接中需要配置hbase服务端的认证文件,在集群中启动hbase集群时使用hbase.service.keytab认证文件,可以在/etc/security/keytabs目录下获取具体的keytab文件:
下载好的认证文件同样可以跟上面步骤保持一致,在dbeaver的安装目录下的kerberos目录中。
配置驱动
上述所有配置文件准备好后,打开dbeaver,新建phoenix链接:
然后编辑驱动配置,修改URL模板为:
具体内容如下:
jdbc:phoenix:{host}[:{port}]:/hbase-secure:hbase/management0.hde.com@HADOOP.COM:D:\program\dbeaver\kerberos\hbase.service.keytab
说明:
- hbase-secure为zookeeper中hbase元数据存放目录,开启kerberos后默认,必须要配置否则无法找到meta信息;
- hbase/management0.hde.com@HADOOP.COM为hbase master的principal信息,可以从集群配置中获取
- D:\program\dbeaver\kerberos\hbase.service.keytab为认证文件存放位置
设置驱动包:
删除原来默认的phoenix驱动,将从集群中获取并加入配置文件的phoenix-*.jar添加进来。点击找到类获取jdbc驱动类:
添加配置参数:
在连接属性中设置如下参数,与集群中保持一致:
phoenix.schema.isNamespaceMappingEnabled=true
phoenix.schema.mapSystemTablesToNamespace=true
然后确定,输入正确的zookeeper地址即可!点击测试连接即可连接成功!
说明:
使用Dbeaver连接Phoenix无法在左侧列出Phoenix的default命令空间下表,可以通过查看元数据表查看有哪些表:
创建完用户namespace后可以在左侧正常查看表: