Kerberos环境下使用Dbeaver链接Phoenix

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版本。
Kerberos环境下使用Dbeaver链接Phoenix_第1张图片

 Kerberos环境下使用Dbeaver链接Phoenix_第2张图片

 然后进行安装点击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文件:

Kerberos环境下使用Dbeaver链接Phoenix_第3张图片

 然后将文件解压后放置上上述配置的目录中即可!

特别注意

在个别版本的dbeaver中不能使用自带的jre环境,需要配置到本地的jre才可以正常使用,笔者在正常使用遇到无法load krb5.conf的问题,尝试了多种办法发现需要更改为本地jdk才可以正常使用。

Kerberos环境下使用Dbeaver链接Phoenix_第4张图片

 修改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/目录下:
Kerberos环境下使用Dbeaver链接Phoenix_第5张图片

 下载phoenix-5.0.0-cdh6.2.0-client.jar到本地

2. 下载配置文件

登录大数据集群节点后,在/etc/hadoop/conf目录下找到hdfs-site.xml和core-site.xml配置文件下载到本地:

Kerberos环境下使用Dbeaver链接Phoenix_第6张图片

 然后到/etc/hbase/conf目录找到hbase-site.xml也下载到本地:

Kerberos环境下使用Dbeaver链接Phoenix_第7张图片

3. 将下载好的配置文件放入驱动包中

使用WinRAR打开phoenix-5.0.0-cdh6.2.0-client.jar驱动包,将hdfs-site.xml和core-site.xml以及hbase-site.xml放入压缩包中:
Kerberos环境下使用Dbeaver链接Phoenix_第8张图片

 然后保存关闭即可。

4. 下载服务端hbase的认证文件

在phoenix的URL链接中需要配置hbase服务端的认证文件,在集群中启动hbase集群时使用hbase.service.keytab认证文件,可以在/etc/security/keytabs目录下获取具体的keytab文件:

Kerberos环境下使用Dbeaver链接Phoenix_第9张图片

 下载好的认证文件同样可以跟上面步骤保持一致,在dbeaver的安装目录下的kerberos目录中。

配置驱动

上述所有配置文件准备好后,打开dbeaver,新建phoenix链接:

Kerberos环境下使用Dbeaver链接Phoenix_第10张图片

然后编辑驱动配置,修改URL模板为:

Kerberos环境下使用Dbeaver链接Phoenix_第11张图片

 具体内容如下:

jdbc:phoenix:{host}[:{port}]:/hbase-secure:hbase/[email protected]:D:\program\dbeaver\kerberos\hbase.service.keytab

说明:

  • hbase-secure为zookeeper中hbase元数据存放目录,开启kerberos后默认,必须要配置否则无法找到meta信息;
  • hbase/[email protected]为hbase master的principal信息,可以从集群配置中获取
  • D:\program\dbeaver\kerberos\hbase.service.keytab为认证文件存放位置

设置驱动包:

删除原来默认的phoenix驱动,将从集群中获取并加入配置文件的phoenix-*.jar添加进来。点击找到类获取jdbc驱动类:
Kerberos环境下使用Dbeaver链接Phoenix_第12张图片

 添加配置参数:

在连接属性中设置如下参数,与集群中保持一致:

Kerberos环境下使用Dbeaver链接Phoenix_第13张图片

 phoenix.schema.isNamespaceMappingEnabled=true

phoenix.schema.mapSystemTablesToNamespace=true

然后确定,输入正确的zookeeper地址即可!点击测试连接即可连接成功!

Kerberos环境下使用Dbeaver链接Phoenix_第14张图片

说明: 

使用Dbeaver连接Phoenix无法在左侧列出Phoenix的default命令空间下表,可以通过查看元数据表查看有哪些表:
Kerberos环境下使用Dbeaver链接Phoenix_第15张图片

创建完用户namespace后可以在左侧正常查看表:

Kerberos环境下使用Dbeaver链接Phoenix_第16张图片

你可能感兴趣的:(大数据,数据库,eclipse,java)