当前位置:   article > 正文

java连接有kerberos认证的hbase_java连接hbase kerbos krb5.conf

java连接hbase kerbos krb5.conf

最近有这个需求,因为kerberos认证,一直连不上,通过很多大佬的帮忙,终于成功连上,在此分享下自己的一点点收获

话不多说,

1.需要hbase-site.xml这个配置文件,里面有很多配置属性是需要的,需要将这个文件放到根目录下;很多属性因为在这个配置文件里有了,所以不用设置,但是你设置了,会以你设置的为准,这里面的只是初始化。

2.keytab文件

3.krb5.conf文件

  1. private static final String KEYTAB_FILE =CLASS_LOADER.getResource("kerberos/smokeuser.headless.keytab").getPath();
  2. private static final String KERB_CONF =CLASS_LOADER.getResource("kerberos/krb5.conf").getPath();
  3. private static Connection connection =null;
  4. private static Admin admin =null;
  5. public static List<String> list=null;
  6. static {
  7. System.setProperty("java.security.krb5.conf", KERB_CONF);
  8. System.setProperty("sun.security.krb5.debug", "true");
  9. final Configuration conf = HBaseConfiguration.create();
  10. conf.set("hbase.zookeeper.quorum", "zookenode1,zookenode2,zookenode3");
  11. conf.set("hbase.zookeeper.property.clientPort", "2181");
  12. conf.set("hadoop.security.authentication", "kerberos");
  13. conf.set("hbase.security.authentication", "kerberos");
  14. conf.set("zookeeper.znode.parent", "/hbase-secure");
  15. conf.set("hbase.master.kerberos.principal", "hbase/xxxx1@xxx.COM");
  16. UserGroupInformation.setConfiguration(conf);
  17. try {
  18. UserGroupInformation ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI("xxxx2@xxx.COM", KEYTAB_FILE);
  19. UserGroupInformation.setLoginUser(ugi);
  20. HBaseAdmin.available(conf);
  21. connection = ConnectionFactory.createConnection(conf);
  22. admin = connection.getAdmin();
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. }

 

注意 :principal的值hbase/xxxx1@xxx.COM为主hbase主节点;keytab文件和xxxx2@xxx.COM需要对应;我这里用的hbase不是1.xx版本的,是2.xx版本的,所以是 HBaseAdmin.available(conf);方法;

到此,应该没有多大问题了,可以通过admin和connection愉快的操作hbase了。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/611929
推荐阅读
相关标签
  

闽ICP备14008679号