前提
1).远程的Hadoop和Hbase已经启动
2).引入hbase/lib下所有jar文件
?
1.HBaseUtil.java
?
package cn.netcenter.hbase; import java.io.IOException; import java.util.ArrayList; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; public class HBaseUtil { private static HBaseConfiguration conf = null; static { conf = new HBaseConfiguration(); //conf.set("hbase.master", "10.3.61.141:60000"); //conf.set("hbase.zookeeper.quorum", "hadoop141,hadoop142,hadoop143,hadoop144"); //conf.set("hbase.master.port", "60000"); conf.addResource("hbase-site.xml"); } // add public void createTable(String tableName, String[] cfs) throws IOException { HBaseAdmin admin = new HBaseAdmin(conf); if (admin.tableExists(tableName)) { System.out.println("表已经存在了"); } else { HTableDescriptor tableDesc = new HTableDescriptor(tableName);//表描述 for (int i = 0; i < cfs.length; i++) { tableDesc.addFamily(new HColumnDescriptor(cfs[i]));//列族 } admin.createTable(tableDesc); System.out.println("表创建成功!"); } } // delete table public void deleteTable(String tableName) throws IOException { try { HBaseAdmin admin = new HBaseAdmin(conf); admin.disableTable(tableName); admin.deleteTable(tableName); System.out.println("删除表成功"); } catch (Exception e) { e.printStackTrace(); } } public void writeRow(String tableName, String[] cfs) { try { HTable table = new HTable(conf, tableName); Put put = new Put(org.apache.hadoop.hbase.util.Bytes.toBytes(cfs[0])); put.add(org.apache.hadoop.hbase.util.Bytes.toBytes(cfs[1]), org.apache.hadoop.hbase.util.Bytes.toBytes(cfs[2]), org.apache.hadoop.hbase.util.Bytes.toBytes(cfs[3])); table.put(put); } catch (Exception e) { e.printStackTrace(); } } // delete value public void deleteRow(String tableName, String rowKey) throws IOException { HTable table = new HTable(conf, tableName); java.util.List<Delete> list = new ArrayList<Delete>(); Delete dl = new Delete(rowKey.getBytes()); list.add(dl); table.delete(list); System.out.println("删除成功!"); } public void selectRow(String tableName, String rowKey) throws IOException { HTable table = new HTable(conf, tableName); Get g = new Get(rowKey.getBytes()); Result rs = table.get(g); for (KeyValue kv : rs.raw()) { System.out.println(new String(kv.getRow()) + " "); System.out.println(new String(kv.getFamily()) + ":"); System.out.println(new String(kv.getQualifier()) + " "); System.out.println(kv.getTimestamp() + " "); System.out.println(new String(kv.getValue()) + " "); } } public void scaner(String tableName) { try { HTable table = new HTable(conf, tableName); Scan scan = new Scan(); ResultScanner rs = table.getScanner(scan); for (Result r : rs) { 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())); } } } catch (Exception e) { e.printStackTrace(); } } }
?
?
2.HBaseTest.java
?