用Java访问带有Kerberos认证的HBase
生活随笔
收集整理的這篇文章主要介紹了
用Java访问带有Kerberos认证的HBase
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
程序代碼實例如下:package?com.hbasedemo;import?java.io.IOException;import?org.apache.hadoop.conf.Configuration;
import?org.apache.hadoop.hbase.HBaseConfiguration;
import?org.apache.hadoop.hbase.KeyValue;
import?org.apache.hadoop.hbase.client.HTable;
import?org.apache.hadoop.hbase.client.Result;
import?org.apache.hadoop.hbase.client.ResultScanner;
import?org.apache.hadoop.hbase.client.Scan;
import?org.apache.hadoop.security.UserGroupInformation;public?class?Test {private?static?Configuration?conf?=?null;static?{// 這個配置文件主要是記錄?kerberos的相關配置信息,例如KDC是哪個IP?默認的realm是哪個?// 如果沒有這個配置文件這邊認證的時候肯定不知道KDC的路徑嘍// 這個文件也是從遠程服務器上copy下來的System.?setProperty("java.security.krb5.conf",?"C:/Users/dongzeguang/Downloads/krb5.conf"?);conf?= HBaseConfiguration.create();conf.set("hadoop.security.authentication"?,?"Kerberos"?);// 這個hbase.keytab也是從遠程服務器上copy下來的, 里面存儲的是密碼相關信息// 這樣我們就不需要交互式輸入密碼了conf.set("keytab.file"?,?"C:/Users/Downloads/hbase.keytab"?);// 這個可以理解成用戶名信息,也就是Principalconf.set("kerberos.principal"?,?"hbase/1722.myip.domain@HADOOP.COM"?);???????????UserGroupInformation.?setConfiguration(conf);try?{UserGroupInformation.?loginUserFromKeytab("hbase/1722.myip.domain@HADOOP.COM",?"C:/Users/Downloads/hbase.keytab"?);}?catch?(IOException e) {//?TODO?Auto-generated catch block
??????????????????e.printStackTrace();}}public?static?void?scanSpan(final?String tableName)?throws?Exception {HTable table =??new?HTable(conf, tableName);System.?out.println("tablename:"?+new?String(table.getTableName()));Scan s =?new?Scan();ResultScanner rs = table.getScanner(s);for?(Result r : rs) {System.?out.println(r.toString());KeyValue[] kv = r.?raw();for?(int?i = 0; i < kv.length; i++) {System.?out.print(new?String(kv[i].getRow()) +?"");System.?out.print(new?String(kv[i].getFamily()) +?":");System.?out.print(new?String(kv[i].getQualifier()?) +?""?);System.?out.print(kv[i].getTimestamp() +?""?);System.?out.println(new?String(kv[i].getValue()?));}}}/***?@param?args*/public?static?void?main(String[] args) {//?TODO?Auto-generated method stubtry?{Test.?scanSpan("h_span");}?catch?(Exception e) {//?TODO?Auto-generated catch block
??????????????????e.printStackTrace();}}}
?
轉載于:https://www.cnblogs.com/felixzh/p/11586865.html
總結
以上是生活随笔為你收集整理的用Java访问带有Kerberos认证的HBase的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux面试题一
- 下一篇: phoenix kerberos 连接配