Hadoop3系列——(八)Java访问Hbase

    科技2024-04-23  254

    pom文件

    <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>2.2.6</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.1.4</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> <version>3.1.2</version> </dependency>

     

    创建表:

    public static void createTable(){ Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","node1,node2,node3"); try { //建立连接 Connection conn = ConnectionFactory.createConnection(conf); Admin admin = conn.getAdmin(); //添加表描述 HTableDescriptor tableDes = new HTableDescriptor(TableName.valueOf("test11")); //添加族列 HColumnDescriptor colDesc = new HColumnDescriptor("cf1"); tableDes.addFamily(colDesc);//把族列添加到表 admin.createTable(tableDes);//创建表 } catch (Exception e) { e.printStackTrace(); } }

     

    插入数据(修改也是用该方法):

    public static void addData(){ Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","node1,node2,node3"); try { //建立连接 Connection conn = ConnectionFactory.createConnection(conf); //连接表 Table table = conn.getTable(TableName.valueOf("test11")); //设置Row Key Put put = new Put("110".getBytes()); //设置列族名cf1,列名name,列值 put.addColumn("cf1".getBytes(),"name".getBytes(),"aaaa".getBytes()); table.put(put); } catch (Exception e) { e.printStackTrace(); } }

     

    查询数据:

    查询指定cell的数据

    //获取指定cell数据 public static void getData(){ Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","node1,node2,node3"); try { //建立连接 Connection conn = ConnectionFactory.createConnection(conf); //连接表 Table table = conn.getTable(TableName.valueOf("test11")); //通过Row Key获取指定行 Get get = new Get("110".getBytes()); Result rs = table.get(get); //通过行指定列,获取cell Cell cell = rs.getColumnLatestCell("cf1".getBytes(),"name".getBytes()); System.out.println(new String(CellUtil.cloneRow(cell),"utf-8")); System.out.println(new String(CellUtil.cloneValue(cell),"utf-8")); } catch (Exception e) { e.printStackTrace(); } }

     

    查询指定表的全部数据

    //获取指定表的所有数据 public static void getDataByScan(){ Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","node1,node2,node3"); try { //建立连接 Connection conn = ConnectionFactory.createConnection(conf); //连接表 Table table = conn.getTable(TableName.valueOf("test11")); Scan scan = new Scan(); //获取遍历查询的结果 ResultScanner resultScanner = table.getScanner(scan); //对结果集进行迭代 Iterator its = resultScanner.iterator(); while (its.hasNext()){ Result rs = (Result) its.next(); //通过行指定列,获取cell Cell cell = rs.getColumnLatestCell("cf1".getBytes(),"name".getBytes()); System.out.println(new String(CellUtil.cloneRow(cell),"utf-8")); System.out.println(new String(CellUtil.cloneValue(cell),"utf-8")); } } catch (Exception e) { e.printStackTrace(); } }

     

    Processed: 0.022, SQL: 8