程序代碼實例以下: 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" ); // 這個能夠理解成用戶名信息,也就是Principal conf.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 stub try { Test. scanSpan("h_span"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }