DBeaver链接kerberos安全认证的Phoenix集群
DBeaver链接kerberos安全认证的Phoenix集群
最近公司的CDH集群,启动了kerberos安全认证,所有的用户验证全部需要依赖kerberos来进行。之前的裸奔集群,总算有了一些安全认证的功能,虽然网上很多人都说不推荐使用kerberos进行集群的安全认证,但是也没有说明使用哪种安全认证的方式会更好,目前比较现成的安全认证方式也只知道kerberos。
使用kerberos认证之后,原本的Phoenix sqlline可以在存有kerberos缓存票据的机器上直接运行,链接方式,启动命令等,都和没有启动kerberos之前一样。只需要执行klist命令,能够显示kerberos主体信息即可。但是使用Windows进行远程链接Phoenix时出现了问题。首先Windows上没有kerberos客户端,不能直接缓存票据。其次,如果使用kinit命令进行链接的话,必须知道kerberos中的主体密码,而CDH的kerberos主体是CM自主生成的,我们也不知道密码。所以我们只能使用kertab的形式进行链接。
明确了使用keytab的形式进行链接,我们首先尝试了Linux sqlline的形式链接,测试完全没有问题,使用一切正常。但是使用Windows的DBeaver远程链接时要怎么做呢?
百度搜索了一下,只搜到了Phoenix链接kerberos安全认证集群时的jdbc url链接格式,其他的都不是Phoenix的链接设置了。尝试了几天,终于使用DBeaver链接成功了,记录下来,分享给有需要的人。
1.安装Windows的kerberos的客户端
下载Windows的kerberos客户端进行安装,直接百度下载地址吧,版本貌似比较古老
安装的时候注意,如果公司的电脑不给管理员权限的话,记得选择中间的【custom】安装选项,将kerberos的客户端安装到自己用户能够访问的文件夹下,确保后续的客户端能够正常使用。
2.设置Windows端的KDC配置文件
将集群的kerberos配置文件内容拷贝到C:\ProgramData\MIT\Kerberos5\krb5.ini文件中
如果该文件不存在,那么自己创建出来即可,当然了,也可以通过配置环境变量来改变该配置文件的路径
KRB5_CONFIG=E:/apps/kerberos_conf/krb5.ini
3.配置DBeaver的启动参数
因为DBeaver使用的是JAVA的链接方式链接Phoenix集群,所以我们可以通过-D参数传入一些配置来设置程序,已到达url模板中不能传递KDC服务器配置的问题
打开DBeaver的安装目录,打开dbeaver.ini配置文件,添加以下内容
-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini
传递KDC的配置信息给JVM,具体的krb5.ini的目录,请根据自己的情况进行修改。
4.修改DBeaver中Phoenix链接驱动的URL模板
修改dbeaver中,Phoenix链接器的URL模板:
jdbc:phoenix [ :<zookeeper quorum> [ :<port number> [ :<root node> [ :<principal> [ :<keytab file> ] ] ] ] ]
上面是Phoenix官网给出的JDBC链接模板,并且说明了如果需要后续参数,必须要列出前面的所有参数。但是进过查看源码,明确了网上所说的两点错误:
不需要列出前面的所有参数,但是hbase-site.xml文件中需要有所有的信息
Phoenix-client.jar中需要有core-site.xml,hdfs-site.xml,hbase-site.xml三个集群配置文件
Windows的keytab路径可以使用带盘符的路径,如:E:\hbase.keytab
修改为自己集群的链接即可,进行测试发现已经可以链接到kerberos安全认证的集群了。
DBeaver链接kerberos安全认证的Phoenix集群的更多相关文章
- Centos 下 Apache 原生 Hbase + Phoenix 集群安装(转载)
前置条件 各软件版本:hadoop-2.7.7.hbase-2.1.5 .jdk1.8.0_211.zookeeper-3.4.10.apache-phoenix-5.0.0-HBase-2.0-bi ...
- 3、基于多播、安全认证的corosync集群(VIP、Httpd、Filesystem)
Messaging Layer --> CRM --> RA systemd:/usr/lib/systemd/system systemd有一个特性,即便一个服务开机启动,但是在 ...
- cloudera集群开启kerberos认证后,删除zk中的/hbase目录
问题 在cdh集群中开启了kerberos认证,hbase集群出现一点问题,需要通过zookeeper-client访问zookeeper,删除/hbase节点时候报错:Authentication ...
- Phoenix连接安全模式下的HBase集群
Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...
- linux运维、架构之路-Kubernetes集群部署TLS双向认证
一.kubernetes的认证授权 Kubernetes集群的所有操作基本上都是通过kube-apiserver这个组件进行的,它提供HTTP RESTful形式的API供集群内外客户端调 ...
- Storm集群安装Version1.0.1开启Kerberos
Storm集群安装,基于版本1.0.1, 同时开启Kerberos安全认证, 使用apache-storm-1.0.1.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软件 运行进程 ...
- 大数据【一】集群配置及ssh免密认证
八月迷情,这个月会对大数据进行一个快速的了解学习. 一.所需工具简介 首先我是在大数据实验一体机上进行集群管理学习,管理五台实验机,分别为master,slave1,slave2,slave3,cli ...
- 033.Kubernetes集群安全-API Server认证及授权
一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群 ...
- MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)
MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群) OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...
随机推荐
- java并发包提供的三种常用并发队列实现
java并发包中提供了三个常用的并发队列实现,分别是:ConcurrentLinkedQueue.LinkedBlockingQueue和ArrayBlockingQueue. ConcurrentL ...
- Explain关键字解析
Explain 用法 explain模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的.分析你的查询语句或是表结构的性能瓶颈. 语法:Explain + SQ ...
- JDK1.8中HashMap的hash算法和寻址算法
JDK 1.8 中 HashMap 的 hash 算法和寻址算法 HashMap 源码 hash() 方法 static final int hash(Object key) { int h; ret ...
- 郭超:阿里云Cassandra背后的故事
大家好,我是阿里云数据库产品事业部的玄陵,真名郭超. 本次的分享大概分三个部分:Cassandra云数据库简介.Cassandra云数据库特性以及Q&A. 我们先了解一下Cassand ...
- 简单配置iOS的通用链接,迅速解决“universal link 校验不通过”问题!
对于需要使用微信支付等功能的APP来说,对接微信提供的openSDK是不可缺少的一环.随着苹果iOS 13系统版本的安全升级,为此openSDK在1.8.6版本进行了适配.1.8.6之后的openSD ...
- 31-关键字:final
final:最终的 1.可以用来修饰:类.方法.变量 2.具体的: 2.1 final 用来修饰一个类:此类不能被其他类所继承. * 比如:String类.System类.StringBuffer类 ...
- 一张图理清 Python3 所有知识点
如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...
- 13、Java 异常处理
1.简介 什么是异常?程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止.在Java中即,Java在编译或运行或者运行过程中 ...
- 5、Java 修饰符
引言:Java的修饰符根据修饰的对象不同,分为类修饰符.方法修饰符.变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符. 1.访问控制修饰符的总结 四个关键字:public.protec ...
- 《RabbitMQ》什么是死信队列
一 什么是死信队列 当一条消息在队列中出现以下三种情况的时候,该消息就会变成一条死信. 消息被拒绝(basic.reject / basic.nack),并且requeue = false 消息TTL ...