JAVA安全客户端连接到Hbase
2015-03-13 13:38
756 查看
Hbase提供多种开发语言的API,通常我们通过JAVA API连接到Hbase只需要在HbaseConfiguration中配置zookeeper的相关信息就可以,配置如下:
但是当Hbase基于kerberos做安全认证以后,再使用上面的配置及方法连接到Hbase就不行了,这使用就要使用到Hadoop的UserGroupInformation类,关于这个类的说明有兴趣的可以找一些相关文档看看,在此就不啰嗦了。那么如何使用JAVA API连接到Hbase呢,处理上面提到的配置hbase.zookeeper.quorum、hbase.zookeeper.property.clientPort、zookeeper.znode.parent这3项外,还需要配置如下信息:
其中loginUserFromKeytab方法的两个参数,第一个为KDC注册的用户标识,第二个为KDC生成的注册的用户的密钥文件路径。
OK,现在又可以查询Hbase的数据了。
注意:当使用java安全客户端连接到Hbase时,运行此客户端程序的机器必须有keytab文件,换句话说,这个机器已经注册到KDC了。
HBaseConfiguration hbaseConfig = new HBaseConfiguration(); hbaseConfig.set("hbase.zookeeper.quorum", "master1,master2"); hbaseConfig.set("hbase.zookeeper.property.clientPort", "2181"); hbaseConfig.set("zookeeper.znode.parent","/hbase");
HTable table = new HTable(hbaseConfig,tableName); Get get = new Get(rowKey.getBytes()); Result r =table.get(get);
但是当Hbase基于kerberos做安全认证以后,再使用上面的配置及方法连接到Hbase就不行了,这使用就要使用到Hadoop的UserGroupInformation类,关于这个类的说明有兴趣的可以找一些相关文档看看,在此就不啰嗦了。那么如何使用JAVA API连接到Hbase呢,处理上面提到的配置hbase.zookeeper.quorum、hbase.zookeeper.property.clientPort、zookeeper.znode.parent这3项外,还需要配置如下信息:
//设置安全验证方式为kerberos hbaseConfig.set("hadoop.security.authentication","kerberos"); hbaseConfig.set("hbase.security.authentication","kerberos"); //设置hbase master及hbase regionserver的安全标识,这两个值可以在hbase-site.xml中找到 hbaseConfig.set("hbase.master.kerberos.principal", "hbase/_HOST@MYREALM.COM"); hbaseConfig.set("hbase.regionserver.kerberos.principal","hbase/_HOST@MYREALM.COM"); //使用设置的用户登陆 UserGroupInformation.setConfiguration(hbaseConfig); UserGroupInformation.loginUserFromKeytab("username/mydomain.com@MYREALM.COM","/usr/username.keytab");
HTable table = new HTable(hbaseConfig,tableName); Get get = new Get(rowKey.getBytes()); Result r =table.get(get);
其中loginUserFromKeytab方法的两个参数,第一个为KDC注册的用户标识,第二个为KDC生成的注册的用户的密钥文件路径。
OK,现在又可以查询Hbase的数据了。
注意:当使用java安全客户端连接到Hbase时,运行此客户端程序的机器必须有keytab文件,换句话说,这个机器已经注册到KDC了。
相关文章推荐
- JAVA安全客户端连接到Hbase
- 通过java客户端连接hbase 注意事项
- 通过java客户端连接hbase 注意事项
- Java客户端连接elasticsearch5.5.3实现数据搜索(基于xpack安全管理)
- Java客户端连接HBase报错:Not a host:port pair
- Java客户端连接elasticsearch5.5.3实现数据搜索(基于xpack安全管理)
- 通过java客户端连接hbase 注意事项
- Not a host:port pair: PBUF(用Java客户端(Eclipse平台)连接Hbase)&&apache官网Jar下载流程
- java 连接HBase客户端
- Java客户端连接HBase报错:Not a host:port pair
- 解决客户端通过zookeeper连接到hbase时连接过多的问题
- JAVA NIO写服务端判断客户端断开连接的方法
- CouchDB客户端连接的说明---Java版
- Cassandra客户端连接的说明---Java版
- Java客户端用https连接服务器的一点心得
- HBase Java客户端编程
- SMTP 服务器要求安全连接或客户端未通过身份验证的各个解决方案(C#)
- C#客户端与Java程序使用socket连接并通信的兼容问题
- java本地客户端与服务器连接并相互发送数据
- 用Java 2标准版1.4进行Internet安全编程(客户端)