• hbase java Api练习


    package cn.itcast_01_hbase;
    
    
    
    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.CellUtil;
    
    import org.apache.hadoop.hbase.HBaseConfiguration;
    
    import org.apache.hadoop.hbase.HColumnDescriptor;
    
    import org.apache.hadoop.hbase.HTableDescriptor;
    
    import org.apache.hadoop.hbase.MasterNotRunningException;
    
    import org.apache.hadoop.hbase.TableName;
    
    import org.apache.hadoop.hbase.ZooKeeperConnectionException;
    
    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.HBaseAdmin;
    
    import org.apache.hadoop.hbase.client.HConnection;
    
    import org.apache.hadoop.hbase.client.HConnectionManager;
    
    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.filter.ColumnPrefixFilter;
    
    import org.apache.hadoop.hbase.filter.CompareFilter;
    
    import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
    
    import org.apache.hadoop.hbase.filter.FilterList;
    
    import org.apache.hadoop.hbase.filter.FilterList.Operator;
    
    import org.apache.hadoop.hbase.filter.MultipleColumnPrefixFilter;
    
    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_2 {
    
    
    
        /**
    
         * 配置ss
    
         */
    
        static Configuration config = null;
    
        private Connection connection = null;
    
        private Table table = null;
    
    
    
        @Before
    
        public void init() throws Exception {
    
            config = HBaseConfiguration.create();// 配置
    
            //这里没有配置好像用的是path里面的hbase,这个程序是在linunx中
    
            //运行的,所以 没有问题,下面的配置是集群中的,但是由于集群没有搭建起来
    
            //用的是单机的
    
            //config.set("hbase.zookeeper.quorum", "master,work1,work2");// zookeeper地址
    
            //config.set("hbase.zookeeper.property.clientPort", "2181");// zookeeper端口
    
            /*connection = ConnectionFactory.createConnection(config);
    
            table = connection.getTable(TableName.valueOf("www.baidu.com20170630"));*/
    
            connection = ConnectionFactory.createConnection(config);
    
            table = connection.getTable(TableName.valueOf("t4"));
    
            
    
        }
    
    
    
        /**
    
         * 创建一个表
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void createTable() throws Exception { 
    
            //创建表管理
    
            HBaseAdmin admin = new HBaseAdmin(config);
    
            TableName tableName = TableName.valueOf("t4");
    
            
    
            HTableDescriptor desc = new HTableDescriptor(tableName);
    
            HColumnDescriptor family = new HColumnDescriptor("info");//
    
            desc.addFamily(family);
    
            HColumnDescriptor family2 = new HColumnDescriptor("ino2");
    
            desc.addFamily(family2);
    
            admin.createTable(desc);
    
            
    
            
    
        }
    
    
    
        @Test
    
        @SuppressWarnings("deprecation")
    
        public void deleteTable() throws MasterNotRunningException,
    
                ZooKeeperConnectionException, Exception {
    
            
    
            HBaseAdmin admin = new HBaseAdmin(config);
    
            admin.disableTable("t3");
    
            admin.deleteTable("t3");
    
            admin.close();
    
        }
    
    
    
        /**
    
         * 向hbase中增加数据
    
         * 
    
         * @throws Exception
    
         */
    
        @SuppressWarnings({ "deprecation", "resource" })
    
        @Test
    
        public void insertData() throws Exception { 
    
        List<Put> arraylist = new ArrayList<Put>(1);
    
        Put put =  new Put(Bytes.toBytes("1223434"));//rowkey
    
        put.add(Bytes.toBytes("info"),Bytes.toBytes("name"),Bytes.toBytes("huangxiaoming"));
    
        put.add(Bytes.toBytes("info"),Bytes.toBytes("password"),Bytes.toBytes("anglebaby"));
    
        put.add(Bytes.toBytes("info"),Bytes.toBytes("age"),Bytes.toBytes("25"));
    
        put.add(Bytes.toBytes("info"),Bytes.toBytes("gender"),Bytes.toBytes("1"));
    
        arraylist.add(put);
    
        //提交
    
        table.put(arraylist);
    
        //插入数据
    
        table.flushCommits();
    
        }
    
    
    
        /**
    
         * 修改数据,不存在时新增
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void uodateData() throws Exception {
    
            Put put = new Put(Bytes.toBytes("323422"));
    
            put.add(Bytes.toBytes("info"), Bytes.toBytes("name_B"), Bytes.toBytes("郭德纲"));
    
            put.add(Bytes.toBytes("info"), Bytes.toBytes("password_A"), Bytes.toBytes(1234));
    
            
    
            Put put1 = new Put(Bytes.toBytes("323432"));
    
            put1.add(Bytes.toBytes("info"), Bytes.toBytes("name_B"), Bytes.toBytes("沙河上"));
    
            put1.add(Bytes.toBytes("info"), Bytes.toBytes("password_B"), Bytes.toBytes(1234));
    
            Put put2 = new Put(Bytes.toBytes("323442"));
    
            put2.add(Bytes.toBytes("info"), Bytes.toBytes("name_B"), Bytes.toBytes("猪八戒"));
    
            put2.add(Bytes.toBytes("info"), Bytes.toBytes("password_B"), Bytes.toBytes(1234));
    
            
    
            //插入数据
    
            table.put(put);
    
            table.put(put1);
    
            table.put(put2);
    
            //提交
    
            table.flushCommits();
    
        }
    
    
    
        /**
    
         * 删除数据
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void deleteDate() throws Exception {
    
            Delete delete =  new Delete(Bytes.toBytes("1234"));
    
            table.delete(delete);
    
            table.flushCommits();
    
            
    
        }
    
    
    
        /**
    
         * 单条查询
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void queryData() throws Exception {
    
            
    
            Get get =new Get(Bytes.toBytes("1234"));
    
            //get.addColumn(Bytes.toBytes("info"), Bytes.toBytes("password"));//根据列族查询列名字查询
    
            get.addFamily(Bytes.toBytes("info"));//根据列族查询
    
            Result result = table.get(get);
    
            long start = System.currentTimeMillis();
    
            System.out.println(Bytes.toInt(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("password"))));
    
            
    
        
    
            System.out.println(Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"))));
    
            long end =  System.currentTimeMillis();
    
            System.out.println(end-start);
    
        }
    
    
    
        /**
    
         * 全表扫描
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void scanData() throws Exception { 
    
            Scan scan = new Scan();
    
            scan.setStartRow(Bytes.toBytes("1"));
    
            scan.setStopRow(Bytes.toBytes("z"));//
    
            //scan.addFamily(Bytes.toBytes("info"));
    
            scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"));
    
            ResultScanner scanner = table.getScanner(scan);
    
            for(Result result : scanner){
    
                System.out.print(Bytes.toString(result.getRow())+";");//rowkey
    
                System.out.print(Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")))+";");
    
                System.out.print(Bytes.toInt(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("password")))+";");
    
                System.out.println();
    
            }
    
        }
    
        
    
        private void printScanner(ResultScanner scanner ){
    
            for(Result result : scanner){
    
                System.out.print(Bytes.toString(result.getRow())+";");//rowkey
    
                System.out.print(Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")))+";");
    
                System.out.print(Bytes.toInt(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("password")))+";");
    
                System.out.println();
    
            }        
    
        }
    
    
    
        /**
    
         * 全表扫描的过滤器
    
         * 列值过滤器
    
         * 
    
         * @throws Exception
    
         */
    
        @Test
    
        public void scanDataByFilter1() throws Exception { 
    
            Scan scan = new Scan();
    
        SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("name"), CompareOp.GREATER, Bytes.toBytes("lisi1234"));    
    
        scan.setFilter(filter);
    
        ResultScanner scanner = table.getScanner(scan);
    
        printScanner(scanner);
    
        
    
        }
    
        /**
    
         * rowkey过滤器
    
         * @throws Exception
    
         */
    
        @Test
    
        public void scanDataByFilter2() throws Exception {
    
        Scan scan = new Scan();
    
        RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, new RegexStringComparator("^2"));
    
        scan.setFilter(rowFilter);
    
        ResultScanner scanner = table.getScanner(scan);
    
        printScanner(scanner);
    
            
    
        }
    
        
    
        /**
    
         * 匹配列名前缀
    
         * @throws Exception
    
         */
    
        @Test
    
        public void scanDataByFilter3() throws Exception { 
    
            Scan scan = new Scan();
    
            ColumnPrefixFilter columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("n"));
    
            //scan.addFamily(Bytes.toBytes("info"));
    
            scan.setFilter(columnPrefixFilter);
    
            ResultScanner scanner = table.getScanner(scan);
    
            printScanner(scanner);    
    
        }
    
        @Test
    
        public void scanDataByFilter44() throws Exception {
    
            //MultipleColumnPrefixFilter 和 ColumnPrefixFilter 行为差不多,但可以指定多个前缀
    
            Scan scan = new Scan();
    
            byte[][] prefixes = new byte[][] {Bytes.toBytes("na"),Bytes.toBytes("p")};
    
            //Filter f = new MultipleColumnPrefixFilter(prefixes);
    
            MultipleColumnPrefixFilter filter = new MultipleColumnPrefixFilter(prefixes);
    
            scan.setFilter(filter);
    
            ResultScanner scanner = table.getScanner(scan);
    
            printScanner(scanner);
    
        }
    
        
    
        /**
    
         * 过滤器集合
    
         * @throws Exception
    
         */
    
        @Test
    
        public void scanDataByFilter4() throws Exception {
    
            
    
            // 创建全表扫描的scan
    
            Scan scan = new Scan();
    
             
    
            FilterList filters = new FilterList(Operator.MUST_PASS_ALL);
    
            
    
            RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, new RegexStringComparator("^2"));
    
            SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("name"), CompareOp.NOT_EQUAL, Bytes.toBytes("lisi"));
    
        filters.addFilter(rowFilter);
    
        filters.addFilter(singleColumnValueFilter);
    
        scan.setFilter(filters);
    
        ResultScanner scanner = table.getScanner(scan);
    
        printScanner(scanner);
    
        }
    
    
    
        @After
    
        public void close() throws Exception {
    
            table.close();
    
            connection.close();
    
        }
    
    
    
    }

    数据库表

     scan 't4'
    ROW                                                          COLUMN+CELL                                                                                                                                                                     
     1223434                                                     column=info:age, timestamp=1498891615751, value=25                                                                                                                              
     1223434                                                     column=info:gender, timestamp=1498891615751, value=1                                                                                                                            
     1223434                                                     column=info:name, timestamp=1498892027083, value=lisi1234                                                                                                                       
     1223434                                                     column=info:password, timestamp=1498892027083, value=x00x12xD5.                                                                                                              
     1234                                                        column=info:name, timestamp=1498892427671, value=lisi1234                                                                                                                       
     1234                                                        column=info:password, timestamp=1498892427671, value=x00x12xD5.                                                                                                              
     12341                                                       column=info:name, timestamp=1498894169373, value=sudan                                                                                                                          
     12341                                                       column=info:password, timestamp=1498894169373, value=x00x00x00x17                                                                                                           
     12342                                                       column=info:name, timestamp=1498894341082, value=hanmei                                                                                                                         
     12342                                                       column=info:password, timestamp=1498894341082, value=x00x00x04xD2                                                                                                           
     123422                                                      column=info:name, timestamp=1498894389540, value=xE9x83xADxE5xBExB7xE7xBAxB2                                                                                           
     123422                                                      column=info:password, timestamp=1498894389540, value=x00x00x04xD2                                                                                                           
     12343                                                       column=info:name, timestamp=1498894341091, value=sunwukong                                                                                                                      
     12343                                                       column=info:password, timestamp=1498894341091, value=x00x00x04xD2                                                                                                           
     123432                                                      column=info:name, timestamp=1498894389549, value=xE6xB2x99xE6xB2xB3xE4xB8x8A                                                                                           
     123432                                                      column=info:password, timestamp=1498894389549, value=x00x00x04xD2                                                                                                           
     12344                                                       column=info:name, timestamp=1498894341093, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                           
     12344                                                       column=info:password, timestamp=1498894341093, value=x00x00x04xD2                                                                                                           
     123442                                                      column=info:name, timestamp=1498894389551, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                           
     123442                                                      column=info:password, timestamp=1498894389551, value=x00x00x04xD2                                                                                                           
     223422                                                      column=info:name, timestamp=1498894677209, value=xE9x83xADxE5xBExB7xE7xBAxB2                                                                                           
     223422                                                      column=info:password, timestamp=1498894677209, value=x00x00x04xD2                                                                                                           
     223432                                                      column=info:name, timestamp=1498894677222, value=xE6xB2x99xE6xB2xB3xE4xB8x8A                                                                                           
     223432                                                      column=info:password, timestamp=1498894677222, value=x00x00x04xD2                                                                                                           
     223442                                                      column=info:name, timestamp=1498894677225, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                           
     223442                                                      column=info:password, timestamp=1498894677225, value=x00x00x04xD2                                                                                                           
     323422                                                      column=info:name, timestamp=1498894726797, value=xE9x83xADxE5xBExB7xE7xBAxB2                                                                                           
     323422                                                      column=info:name_A, timestamp=1498896667538, value=xE9x83xADxE5xBExB7xE7xBAxB2                                                                                         
     323422                                                      column=info:name_B, timestamp=1498896689859, value=xE9x83xADxE5xBExB7xE7xBAxB2                                                                                         
     323422                                                      column=info:password, timestamp=1498894726797, value=x00x00x04xD2                                                                                                           
     323422                                                      column=info:password_A, timestamp=1498896689859, value=x00x00x04xD2                                                                                                         
     323432                                                      column=info:name, timestamp=1498894726809, value=xE6xB2x99xE6xB2xB3xE4xB8x8A                                                                                           
     323432                                                      column=info:name_A, timestamp=1498896667547, value=xE6xB2x99xE6xB2xB3xE4xB8x8A                                                                                         
     323432                                                      column=info:name_B, timestamp=1498896689870, value=xE6xB2x99xE6xB2xB3xE4xB8x8A                                                                                         
     323432                                                      column=info:password, timestamp=1498894726809, value=x00x00x04xD2                                                                                                           
     323432                                                      column=info:password_A, timestamp=1498896667547, value=x00x00x04xD2                                                                                                         
     323432                                                      column=info:password_B, timestamp=1498896689870, value=x00x00x04xD2                                                                                                         
     323442                                                      column=info:name, timestamp=1498894726811, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                           
     323442                                                      column=info:name_A, timestamp=1498896667549, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                         
     323442                                                      column=info:name_B, timestamp=1498896689872, value=xE7x8CxAAxE5x85xABxE6x88x92                                                                                         
     323442                                                      column=info:password, timestamp=1498894726811, value=x00x00x04xD2                                                                                                           
     323442                                                      column=info:password_A, timestamp=1498896667549, value=x00x00x04xD2                                                                                                         
     323442                                                      column=info:password_B, timestamp=1498896689872, value=x00x00x04xD2                                                                                                         
    15 row(s) in 0.0790 seconds
    
    hbase(main):017:0> 
  • 相关阅读:
    Glide加载网络图片与本地图片尺寸不一致
    android BLE 40 setCharacteristicNotification接收不到数据
    Android中颜色透明度对应16进制值
    模拟器不能运行 Failed to start emulator: Cannot run program "/home/kroaity/Downloads/android-sdk-linux//tools/emulator": error=2
    android SDK Manager 代理服务器设置
    if the parser found inconsistent certificates on the files in the .apk.104
    win7自带桌面便签
    unable to connect to the virtual device Genymotion 神器启动问题
    ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
    获得root权限system/app下文件无法删除
  • 原文地址:https://www.cnblogs.com/rocky-AGE-24/p/7102860.html
Copyright © 2020-2023  润新知