hbase的认证

现在很多的公司都开始使用了kerberos认证,进行权限控制.下面我就说说hbase的kerberos认证.

def putLogsToHTable(p: Iterator[(HBaseKey,String)],bp:Broadcast[Properties]):Unit = {
  val (ugi,hBaseConf): (UserGroupInformation,Configuration) = getUGIAndConf()
UserGroupInformation.setLoginUser(ugi)
val hbaseTableName:TableName = TableName.valueOf(bp.value.getProperty("spark.netlog_hbase_namespace"))

ugi.doAs(new PrivilegedExceptionAction[Unit]{
        override def run() = {
            val conn = ConnectionFactory.createConnection(hBaseConf)
            val hbaseTable = conn.getTable(hbaseTableName)
            val puts = new util.ArrayList[Put]()
       
### 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路径值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值