千家信息网

hbase 2.0.2 java api怎么用

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test
千家信息网最后更新 2025年02月04日hbase 2.0.2 java api怎么用

这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

package com.hbase.test;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.Cell;import org.apache.hadoop.hbase.CompareOperator;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Admin;import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;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;import org.apache.hadoop.hbase.client.Table;import org.apache.hadoop.hbase.client.TableDescriptor;import org.apache.hadoop.hbase.client.TableDescriptorBuilder;import org.apache.hadoop.hbase.filter.ColumnPrefixFilter;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.filter.FilterList.Operator;import org.apache.hadoop.hbase.filter.RegexStringComparator;import org.apache.hadoop.hbase.filter.RowFilter;import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;import org.apache.hadoop.hbase.util.Bytes;import org.junit.After;import org.junit.Before;import org.junit.Test;public class HbaseTest {                Configuration conf = null;        Connection conn = null;        @Before        public void getConfigAndConnection() {                conf = HBaseConfiguration.create();                conf.set("hbase.zookeeper.quorum", "bigdata01,bigdata02,bigdata03");                conf.set("hbase.zookeeper.property.clientPort", "2181");                try {                        conn = ConnectionFactory.createConnection(conf);                } catch (IOException e) {                        e.printStackTrace();                }                       }        @Test        public void createTable() throws IOException {                        Admin admin = conn.getAdmin();                        if(!admin.isTableAvailable(TableName.valueOf("test"))) {                                TableName tableName = TableName.valueOf("test");                                //表描述器构造器                                TableDescriptorBuilder  tdb  =TableDescriptorBuilder.newBuilder(tableName)  ;                                //列族描述起构造器                                ColumnFamilyDescriptorBuilder cdb =  ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("user"));                                //获得列描述起                                ColumnFamilyDescriptor  cfd = cdb.build();                                //添加列族                                tdb.setColumnFamily(cfd);                                //获得表描述器                                TableDescriptor td = tdb.build();                                //创建表                                //admin.addColumnFamily(tableName, cfd); //给标添加列族                                admin.createTable(td);                        }                        //关闭链接        }        //单条插入        @Test        public void insertOneData() throws IOException {                //new 一个列  ,hgs_000为row key                Put put = new Put(Bytes.toBytes("hgs_000"));                //下面三个分别为,列族,列名,列值                put.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("hgs"));                TableName tableName = TableName.valueOf("test");                //得到 table                Table table = conn.getTable(tableName);                //执行插入                table.put(put);                                 }        //插入多个列        @Test        public void insertManyData() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                List puts = new ArrayList();                Put put1 = new Put(Bytes.toBytes("hgs_001"));                put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("wd"));                                Put put2 = new Put(Bytes.toBytes("hgs_001"));                put2.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("age") , Bytes.toBytes("25"));                                Put put3 = new Put(Bytes.toBytes("hgs_001"));                put3.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("60kg"));                                Put put4 = new Put(Bytes.toBytes("hgs_001"));                put4.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("sex") , Bytes.toBytes("男"));                puts.add(put1);                puts.add(put2);                puts.add(put3);                puts.add(put4);                         table.put(puts);                table.close();}        //同一条数据的插入        @Test        public void singleRowInsert() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                                Put put1 = new Put(Bytes.toBytes("hgs_005"));                                put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("cm"));                            put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("age") , Bytes.toBytes("22"));                             put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("88kg"));                put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("sex") , Bytes.toBytes("男"));                                      table.put(put1);                table.close();        }        //数据的更新,hbase对数据只有追加,没有更新,但是查询的时候会把最新的数据返回给哦我们        @Test        public void updateData() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Put put1 = new Put(Bytes.toBytes("hgs_002"));                put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("63kg"));                table.put(put1);                table.close();        }                //删除数据        @Test        public void deleteData() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                //参数为 row key                //删除一列                Delete delete1 = new Delete(Bytes.toBytes("hgs_000"));                delete1.addColumn(Bytes.toBytes("testfm"), Bytes.toBytes("weight"));                //删除多列                Delete delete2 = new Delete(Bytes.toBytes("hgs_001"));                delete2.addColumns(Bytes.toBytes("testfm"), Bytes.toBytes("age"));                delete2.addColumns(Bytes.toBytes("testfm"), Bytes.toBytes("sex"));                //删除某一行的列族内容                Delete delete3 = new Delete(Bytes.toBytes("hgs_002"));                delete3.addFamily(Bytes.toBytes("testfm"));                                //删除一整行                Delete delete4 = new Delete(Bytes.toBytes("hgs_003"));                table.delete(delete1);                table.delete(delete2);                table.delete(delete3);                table.delete(delete4);                table.close();        }                //查询        //        @Test        public void querySingleRow() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                //获得一行                Get get = new Get(Bytes.toBytes("hgs_000"));                Result set = table.get(get);                Cell[] cells  = set.rawCells();                for(Cell cell : cells) {                        System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                }                table.close();                //Bytes.toInt(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("password")))                        }        //全表扫描        @Test        public void scanTable() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Scan scan = new Scan();                //scan.addFamily(Bytes.toBytes("info"));                //scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("password"));                //scan.setStartRow(Bytes.toBytes("wangsf_0"));                //scan.setStopRow(Bytes.toBytes("wangwu"));                ResultScanner rsacn = table.getScanner(scan);                for(Result rs:rsacn) {                        String rowkey = Bytes.toString(rs.getRow());                        System.out.println("row key :"+rowkey);                        Cell[] cells  = rs.rawCells();                        for(Cell cell : cells) {                                System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                        }                        System.out.println("-----------------------------------------");                }        }        //过滤器                @Test        //列值过滤器        public void singColumnFilter() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Scan scan = new Scan();                //下列参数分别为,列族,列名,比较符号,值                SingleColumnValueFilter filter =  new SingleColumnValueFilter( Bytes.toBytes("testfm"),  Bytes.toBytes("name"),                 CompareOperator.EQUAL,  Bytes.toBytes("wd")) ;                scan.setFilter(filter);                ResultScanner scanner = table.getScanner(scan);                for(Result rs:scanner) {                        String rowkey = Bytes.toString(rs.getRow());                        System.out.println("row key :"+rowkey);                        Cell[] cells  = rs.rawCells();                        for(Cell cell : cells) {                                System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                        }                        System.out.println("-----------------------------------------");                }        }        //row key过滤器        @Test        public void rowkeyFilter() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Scan scan = new Scan();                RowFilter filter = new RowFilter(CompareOperator.EQUAL,new RegexStringComparator("^hgs_00*"));                scan.setFilter(filter);                ResultScanner scanner  = table.getScanner(scan);                for(Result rs:scanner) {                        String rowkey = Bytes.toString(rs.getRow());                        System.out.println("row key :"+rowkey);                        Cell[] cells  = rs.rawCells();                        for(Cell cell : cells) {                                System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                        }                        System.out.println("-----------------------------------------");                }        }        //列名前缀过滤器        @Test        public void columnPrefixFilter() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Scan scan = new Scan();                ColumnPrefixFilter filter = new ColumnPrefixFilter(Bytes.toBytes("name"));                scan.setFilter(filter);                ResultScanner scanner  = table.getScanner(scan);                for(Result rs:scanner) {                        String rowkey = Bytes.toString(rs.getRow());                        System.out.println("row key :"+rowkey);                        Cell[] cells  = rs.rawCells();                        for(Cell cell : cells) {                                System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                        }                        System.out.println("-----------------------------------------");                }        }                //过滤器集合        @Test        public void FilterSet() throws IOException {                Table table = conn.getTable(TableName.valueOf("test"));                Scan scan = new Scan();                FilterList list = new FilterList(Operator.MUST_PASS_ALL);                SingleColumnValueFilter filter1 =  new SingleColumnValueFilter( Bytes.toBytes("testfm"),  Bytes.toBytes("age"),                CompareOperator.GREATER,  Bytes.toBytes("23")) ;                ColumnPrefixFilter filter2 = new ColumnPrefixFilter(Bytes.toBytes("weig"));                list.addFilter(filter1);                list.addFilter(filter2);                                scan.setFilter(list);                ResultScanner scanner  = table.getScanner(scan);                for(Result rs:scanner) {                        String rowkey = Bytes.toString(rs.getRow());                        System.out.println("row key :"+rowkey);                        Cell[] cells  = rs.rawCells();                        for(Cell cell : cells) {                                System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));                        }                        System.out.println("-----------------------------------------");                }                        }        @After        public void closeConn() throws IOException {                conn.close();        }}               

关于"hbase 2.0.2 java api怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

数据 过滤器 篇文章 一行 内容 参数 更多 别为 构造器 更新 查询 不错 实用 三个 前缀 只有 多个 文章 时候 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器独立防护案例 力控怎么和sql数据库连接 2021祥云杯网络安全大赛 计算机机房服务器管理制度 服务器2012共享资料权限 软件开发的简称是什么 成都服务器总代 达梦数据库查询所有模式和表名称 第46届湖北省网络安全集训队 电视明明有网却连不到服务器 软件开发wbs 软件开发 免费简历模板 吉林农业大学学生网络安全守则 数据库系统最重要的文件 数据库undo文件有问题 不沉迷手机网络安全教育讲稿 与国家经济发展有关的数据库 nosql数据库设计工具 数据库原理排序怎么实现 服务器机柜过滤器直销 怎么查看服务器操作系统 考研软件开发国家线 中兴c 软件开发笔试题 linux搭载家庭服务器 网络安全心得200 李大帅斗罗大陆服务器群号 北京惠普服务器虚拟化定制 山东影艺网络技术有限公司 数据库安全管理实训作业答案 数据库设计的六个阶段的主要工作
0