每日学习
今天熟悉HBASE使用
使用hbaseapi
代码:
package test; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; public class TestAPI { public static Connection conf=null; //判断表是否存在 public static boolean isTableExist(String tableName) throws MasterNotRunningException, ZooKeeperConnectionException, IOException{ boolean exist=false; //获取配置信息 // HBaseConfiguration hBaseConfiguration=new HBaseConfiguration(); // hBaseConfiguration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104"); Configuration configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104"); //获取管理员信息 // HBaseAdmin admin=new HBaseAdmin(hBaseConfiguration); Connection connection= ConnectionFactory.createConnection(configuration); Admin admin=connection.getAdmin(); //判断是否存在 // exist=admin.tableExists(tableName); // admin.close(); exist=admin.tableExists(TableName.valueOf(tableName)); connection.close(); return exist; } //向表里插入数据 public static void addRowData(String tableName, String rowKey, String columnFamily, String column, String value) throws IOException{ Configuration configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104"); Connection connection= ConnectionFactory.createConnection(configuration); //创建HTable对象 Table hTable = connection.getTable(TableName.valueOf(tableName)); //向表中插入数据 Put put = new Put(Bytes.toBytes(rowKey)); //向Put对象中组装数据 put.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(value)); hTable.put(put); hTable.close(); System.out.println("插入数据成功"); connection.close(); } //从表里获取全部数据 public static void getAllRows(String tableName) throws IOException{ Configuration configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104"); Connection connection= ConnectionFactory.createConnection(configuration); Table hTable = connection.getTable(TableName.valueOf(tableName)); //得到用于扫描region的对象 Scan scan = new Scan(); //使用HTable得到resultcanner实现类的对象 ResultScanner resultScanner = hTable.getScanner(scan); for(Result result : resultScanner){ Cell[] cells = result.rawCells(); for(Cell cell : cells){ //得到rowkey System.out.println("行键:" + Bytes.toString(CellUtil.cloneRow(cell))); //得到列族 System.out.println("列族" + Bytes.toString(CellUtil.cloneFamily(cell))); System.out.println("列:" + Bytes.toString(CellUtil.cloneQualifier(cell))); System.out.println("值:" + Bytes.toString(CellUtil.cloneValue(cell))); } } connection.close(); } //获取某一行的数据 public static void getRow(String tableName, String rowKey) throws IOException{ Configuration configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104"); Connection connection= ConnectionFactory.createConnection(configuration); Table table = connection.getTable(TableName.valueOf(tableName)); Get get = new Get(Bytes.toBytes(rowKey)); //get.setMaxVersions();显示所有版本 //get.setTimeStamp();显示指定时间戳的版本 Result result = table.get(get); for(Cell cell : result.rawCells()){ System.out.println("行键:" + Bytes.toString(result.getRow())); System.out.println("列族" + Bytes.toString(CellUtil.cloneFamily(cell))); System.out.println("列:" + Bytes.toString(CellUtil.cloneQualifier(cell))); System.out.println("值:" + Bytes.toString(CellUtil.cloneValue(cell))); System.out.println("时间戳:" + cell.getTimestamp()); } connection.close(); } public static void main(String[] args) { try { // System.out.println(isTableExist("Student")); // addRowData("Student","1003","Name","","scofield"); // addRowData("Student","1003","Score","English","45"); // addRowData("Student","1003","Score","Math","89"); // addRowData("Student","1003","Score","Computer","100"); // getAllRows("student"); getRow("Student","1001"); } catch (IOException e) { e.printStackTrace(); } } }
 
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号