zoukankan      html  css  js  c++  java
  • 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:ProgramDataMITKerberos5krb5.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:ProgramDataMITKerberos5krb5.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链接模板,并且说明了如果需要后续参数,必须要列出前面的所有参数。但是进过查看源码,明确了网上所说的两点错误:

    1. 不需要列出前面的所有参数,但是hbase-site.xml文件中需要有所有的信息

    2. Phoenix-client.jar中需要有core-site.xml,hdfs-site.xml,hbase-site.xml三个集群配置文件

    3. Windows的keytab路径可以使用带盘符的路径,如:E:hbase.keytab

    修改为自己集群的链接即可,进行测试发现已经可以链接到kerberos安全认证的集群了。

  • 相关阅读:
    poj 3280 Cheapest Palindrome(区间DP)
    POJ 2392 Space Elevator(多重背包)
    HDU 1285 定比赛名次(拓扑排序)
    HDU 2680 Choose the best route(最短路)
    hdu 2899 Strange fuction (三分)
    HDU 4540 威威猫系列故事――打地鼠(DP)
    HDU 3485 Count 101(递推)
    POJ 1315 Don't Get Rooked(dfs)
    脱离eclipse,手动写一个servlet
    解析xml,几种方式
  • 原文地址:https://www.cnblogs.com/night-xing/p/12152216.html
Copyright © 2011-2022 走看看