java连接有kerberos认证的hbase

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

话不多说,

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

2.keytab文件

3.krb5.conf文件

private static final String KEYTAB_FILE =CLASS_LOADER.getResource("kerberos/smokeuser.headless.keytab").getPath();

private static final String KERB_CONF =CLASS_LOADER.getResource("kerberos/krb5.conf").getPath();
    private static Connection connection =null;
    private static Admin admin =null;
    public static List<String> list=null;

static {
        System.setProperty("java.security.krb5.conf", KERB_CONF);
        System.setProperty("sun.security.krb5.debug", "true");

        final Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "zookenode1,zookenode2,zookenode3");
        conf.set("hbase.zookeeper.property.clientPort", "2181");
        conf.set("hadoop.security.a
### HBase Kerberos 安全认证配置 #### 使用的软件版本 当前环境使用的是Hadoop 3.3.4 和 HBase 2.2.6 版本[^1]。 #### 修改 `hbase-site.xml` 文件 为了使HBase能够支持Kerberos,在所有HBase节点中的`$HBASE_HOME/conf/hbase-site.xml`文件内添加必要的配置项来启用此功能[^2]。具体来说,这些设置通常涉及定义Zookeeper以及HBase服务主体名称和服务密钥表路径等参数。 #### Java应用程序连接到启用了Kerberos的安全集群 当通过Java程序访问已开启Kerberos保护模式下的HBase实例时,需先创建一个基于HBase默认配置对象的新实例,并指定Kerberos配置文件的位置;接着将身份验证方式设为“kerberos”,并调用相应方法完成用户的登录操作[^3]: ```java // 创建一个新的HBase Configuration 对象 Configuration conf = HBaseConfiguration.create(); // 设置Kerberos 配置文件位置 System.setProperty("java.security.krb5.conf", "path/to/your/krb5.conf"); // 启动 kerberos 身份验证机制 conf.set("hadoop.security.authentication", "kerberos"); UserGroupInformation.setConfiguration(conf); // 登录用户从keytab文件获取凭证 String principal = "your_principal@YOUR.REALM"; String keytabPath = "/path/to/keytab/file.keytab"; UserGroupInformation.loginUserFromKeytab(principal, keytabPath); ``` 上述代码片段展示了如何在一个典型的Java客户端应用中初始化与HBase服务器之间的安全会话过程。请注意替换实际环境中对应的principal和keytab路径值。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值