• HBase Java API to Uitl



    HBASE SHELL 常用命令:

    1. 显示集群下所有的表: list

    2. 创建表 create 'tablename','cloumnfamily'

    3. 表中添加数据 put 'tablename','rowkey','cloumnfamily:cell','value'

    4. 查询表中数据 get 'tablename','rowkey','cloumnfamily:cell'

    5. 根据列簇查询: get 'tablename','rowkey'

    6. 根据列名查询: scan 'scores',{COLUMNS=>'cloumnfamily:cell'}

    5. 删除表: disable 'tablename' drop 'tablename'

    6. 扫描整张表的数据: scan 'tablename'

    7. 查询指定列簇的数据 : scan 'tablename',{COLUMN => 'columnfamily'}

    8. 条件查询 : scan 'Treacher', {COLUMNS=> 'terinfo:tername',STARTROW => 'row2',STOPROW => 'row3',LIMIT=>1, VERSIONS=>3}

    9. 添加列族 : alter '表名', '列族名'

    10.删除列族 : alter '表名', {NAME => '列族名', METHOD => 'delete'}

    11.值包含数据查询 scan 'Treacher', FILTER=>"ValueFilter(=,'substring:Li')"

    Propss 配置工具类           

     1 import org.apache.hadoop.conf.Configuration;
     2 
     3 import java.util.HashMap;
     4 import java.util.Properties;
     5 
     6 public class Propss {
     7     static Properties producer_Props = new Properties();
     8     static Properties consumer_Props = new Properties();
     9     static HashMap<String, Object> kafka_Consumer = new HashMap<>();
    10     public static Configuration setConf(Configuration conf){
    11          conf.set("hbase.zookeeper.quorum","hadoop106,hadoop107,hadoop108");
    12         conf.set("hbae.zookeeper.property.client","2181");
    13         return conf;
    14     }
    15 
    16     static{
    17         kafka_Consumer.put("bootstrap.servers","hadoop106:9092,hadoop107:9092,hadoop108:9092");
    18         kafka_Consumer.put("group.id", "test");
    19         //from beginning
    20         kafka_Consumer.put("auto.offset.reset","earliest");
    21         kafka_Consumer.put("key.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
    22         kafka_Consumer.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    23 
    24         producer_Props.setProperty("bootstrap.servers","hadoop106:9092,hadoop107:9092,hadoop108:9092");
    25         producer_Props.setProperty("ack","all");
    26         producer_Props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
    27         producer_Props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    28         producer_Props.put("auto.offset.reset","earliest");
    29 
    30         consumer_Props.setProperty("bootstrap.servers","hadoop106:9092,hadoop107:9092,hadoop108:9092");
    31         consumer_Props.setProperty("group.id","test");
    32         consumer_Props.put("key.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
    33         consumer_Props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    34         consumer_Props.put("auto.offset.reset","earliest");
    35     }
    36 }
    HBase_Util 封装工具类           
      1 import org.apache.hadoop.conf.Configuration;
      2 import org.apache.hadoop.hbase.*;
      3 import org.apache.hadoop.hbase.client.*;
      4 import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
      5 import org.apache.hadoop.hbase.util.Bytes;
      6 import java.io.IOException;
      7 import java.util.ArrayList;
      8 import java.util.Iterator;
      9 import java.util.List;
     10 import java.util.UUID;
     11 
     12 public class HBase_Util {
     13     static Configuration con = HBaseConfiguration.create();
     14     static Configuration conf = Propss.setConf(con);
     15     static Connection connection;
     16     static HBaseAdmin admin;
     17     static Table t;
     18 
     19     static {
     20         try {
     21             connection = ConnectionFactory.createConnection(conf);
     22             admin = (HBaseAdmin)connection.getAdmin();
     23         } catch (IOException e) {
     24             e.printStackTrace();
     25         }
     26     }
     27 
     28     //建表
     29     public static void build_Table(String tableName,List<String> FamilyNames) throws Exception {
     30        TableDescriptorBuilder buider = TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName));
     31        for (String columnName : FamilyNames) {
     32            ColumnFamilyDescriptor info = ColumnFamilyDescriptorBuilder.of(Bytes.toBytes(columnName));
     33            buider.setColumnFamily(info);
     34        }
     35        TableDescriptor build = buider.build();
     36        admin.createTable(build);
     37         System.out.println("____build_done____");
     38    }
     39 
     40     //插入一条数据
     41     public static void insert_Row(String tableName,String row,String Family,String qualifier,String value) throws Exception {
     42         t = connection.getTable(TableName.valueOf(tableName));
     43         Put put = new Put(Bytes.toBytes(row));
     44         Put put1 = put.addColumn(Bytes.toBytes(Family), Bytes.toBytes(qualifier), Bytes.toBytes(value));
     45         t.put(put1);
     46         System.out.println("____insert_Row_done____");
     47     }
     48 
     49     //插入num条数据
     50     public  static  void insert_Batch(String tableName,String row,String Family,String qualifier,String value,Integer num) throws Exception {
     51         t = connection.getTable(TableName.valueOf(tableName));
     52          List<Put> list=new ArrayList<>();
     53         for (int i = 0; i < num; i++) {
     54             String s = UUID.randomUUID().toString().replaceAll("-", "");
     55             Put puts = new Put(Bytes.toBytes(s));
     56             Put putss = puts.addColumn(Bytes.toBytes(Family), Bytes.toBytes(qualifier), Bytes.toBytes(value+i));
     57             list.add(putss);
     58         }
     59         t.put(list);
     60         System.out.println("____insert_Batch_done____");
     61     }
     62 
     63     //删除表
     64     public static void drop_Table(String tableName) throws Exception {
     65         if (admin.tableExists(TableName.valueOf(tableName))){
     66             admin.disableTable(TableName.valueOf(tableName));
     67             admin.deleteTable(TableName.valueOf(tableName));
     68             System.out.println("____drop_Table_done____");
     69         }else {
     70             System.out.println("____no_such_Table_found____");
     71         }
     72 
     73     }
     74 
     75     //删除一条数据
     76     public static void  delete_Row(String tableName,String row) throws Exception {
     77         t = connection.getTable(TableName.valueOf(tableName));
     78         Delete delete = new Delete(Bytes.toBytes(row));
     79         t.delete(delete);
     80         System.out.println("____delete_Row_done____");
     81     }
     82 
     83     //特定列过滤查询
     84     public static void scan_Filter(String tableName,String Family,String qualifier,CompareOperator compare,byte[] value) throws Exception {
     85         t = connection.getTable(TableName.valueOf(tableName));
     86         SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes(Family), Bytes.toBytes(qualifier), compare, value);
     87         Scan scan = new Scan();
     88         Scan scan1 = scan.setFilter(filter);
     89         ResultScanner scanner = t.getScanner(scan1);
     90         Iterator<Result> iterator = scanner.iterator();
     91         while (iterator.hasNext()){
     92             Cell[] cells = iterator.next().rawCells();
     93             System.out.println("____"+new String(CellUtil.cloneRow(cells[0]))+"____");
     94             for (Cell cell : cells) {
     95                 System.out.print(new String(CellUtil.cloneRow(cell)));
     96                 System.out.print(" - ");
     97                 System.out.print(new String(CellUtil.cloneFamily(cell)));
     98                 System.out.print(" - ");
     99                 System.out.print(new String(CellUtil.cloneQualifier(cell)));
    100                 System.out.print(" - ");
    101                 System.out.println(new String(CellUtil.cloneValue(cell)));
    102             }
    103 
    104         }
    105         System.out.println("____scan_Filter_done____");
    106     }
    107     //查询一条数据
    108     public static void scan_Row(String tableName,String row)throws Exception{
    109         t = connection.getTable(TableName.valueOf(tableName));
    110         Get get = new Get(Bytes.toBytes(row));
    111         Result result = t.get(get);
    112         Cell[] cells = result.rawCells();
    113         for (Cell cell : cells) {
    114             System.out.print(new String(CellUtil.cloneRow(cell)));
    115             System.out.print(" - ");
    116             System.out.print(new String(CellUtil.cloneFamily(cell)));
    117             System.out.print(" - ");
    118             System.out.print(new String(CellUtil.cloneQualifier(cell)));
    119             System.out.print(" - ");
    120             System.out.println(new String(CellUtil.cloneValue(cell)));
    121         }
    122         System.out.println("____scan_Row_done____");
    123     }
    124     //区间查询数据
    125     public static void scan_Rows(String tableName,String row1,String row2)throws Exception{
    126         t = connection.getTable(TableName.valueOf(tableName));
    127         Scan sc=new Scan(Bytes.toBytes(row1),Bytes.toBytes(row2));
    128         ResultScanner scanner = t.getScanner(sc);
    129         Iterator<Result> iterator = scanner.iterator();
    130         System.out.println("____前闭后开____");
    131         while (iterator.hasNext()){
    132             Result next = iterator.next();
    133             Cell[] cells = next.rawCells();
    134             System.out.println("____"+new String(CellUtil.cloneRow(cells[0]))+"____");
    135             for (Cell cell : cells) {
    136                 System.out.print(new String(CellUtil.cloneRow(cell)));
    137                 System.out.print(" - ");
    138                 System.out.print(new String(CellUtil.cloneFamily(cell)));
    139                 System.out.print(" - ");
    140                 System.out.print(new String(CellUtil.cloneQualifier(cell)));
    141                 System.out.print(" - ");
    142                 System.out.println(new String(CellUtil.cloneValue(cell)));
    143             }
    144         }
    145         System.out.println("____scan_Rows_done____");
    146     }
    147     //查询一条特定列族数据
    148     public static void get_value_by_family(String tableName,String row,String family)throws Exception{
    149         t = connection.getTable(TableName.valueOf(tableName));
    150         Get get = new Get(Bytes.toBytes(row));
    151         get.addFamily(Bytes.toBytes(family));
    152         Result result = t.get(get);
    153         Cell[] cells = result.rawCells();
    154         for (Cell cell : cells) {
    155             System.out.print(new String(CellUtil.cloneRow(cell)));
    156             System.out.print(" - ");
    157             System.out.print(new String(CellUtil.cloneFamily(cell)));
    158             System.out.print(" - ");
    159             System.out.print(new String(CellUtil.cloneQualifier(cell)));
    160             System.out.print(" - ");
    161             System.out.println(new String(CellUtil.cloneValue(cell)));
    162         }
    163         System.out.println("____get_value_by_family_done____");
    164     }
    165 
    166     //查询一条特定列数据
    167     public static void get_value_by_qualifier(String tableName,String row,String family,String qualifier)throws Exception{
    168         t = connection.getTable(TableName.valueOf(tableName));
    169         Get get = new Get(Bytes.toBytes(row));
    170         get.addColumn(Bytes.toBytes(family),Bytes.toBytes(qualifier));
    171         Result result = t.get(get);
    172         Cell[] cells = result.rawCells();
    173         for (Cell cell : cells) {
    174             System.out.print(new String(CellUtil.cloneRow(cell)));
    175             System.out.print(" - ");
    176             System.out.print(new String(CellUtil.cloneFamily(cell)));
    177             System.out.print(" - ");
    178             System.out.print(new String(CellUtil.cloneQualifier(cell)));
    179             System.out.print(" - ");
    180             System.out.println(new String(CellUtil.cloneValue(cell)));
    181         }
    182         System.out.println("____get_value_by_qualifier_done____");
    183     }
    184 
    185     //全查某表
    186     public static void  scan_All(String tableName) throws Exception {
    187         t = connection.getTable(TableName.valueOf(tableName));
    188         Scan sc=new Scan();
    189         ResultScanner scanner = t.getScanner(sc);
    190         Iterator<Result> iterator = scanner.iterator();
    191         while (iterator.hasNext()){
    192             Result next = iterator.next();
    193             Cell[] cells = next.rawCells();
    194             System.out.println("____"+new String(CellUtil.cloneRow(cells[0]))+"____");
    195             for (Cell cell : cells) {
    196                 System.out.print(new String(CellUtil.cloneRow(cell)));
    197                 System.out.print(" - ");
    198                 System.out.print(new String(CellUtil.cloneFamily(cell)));
    199                 System.out.print(" - ");
    200                 System.out.print(new String(CellUtil.cloneQualifier(cell)));
    201                 System.out.print(" - ");
    202                 System.out.println(new String(CellUtil.cloneValue(cell)));
    203             }
    204         }
    205         System.out.println("____scan_All_done____");
    206     }
    207     //查看所有表
    208     public static  void list() throws Exception {
    209         TableName[] tableNames = admin.listTableNames();
    210         for (TableName tableName : tableNames) {
    211             System.out.println(tableName.toString());
    212         }
    213 
    214     }
    215     //查看某表结构
    216     public static  void desc_Table(String tableName) throws Exception {
    217         List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();
    218         Iterator<TableDescriptor> iterator = tableDescriptors.iterator();
    219         while (iterator.hasNext()){
    220             TableDescriptor next = iterator.next();
    221             if (next.getTableName().toString().equals(tableName)){
    222                 System.out.println(next);
    223             }
    224         }
    225         System.out.println("____list_done____");
    226 
    227     }
    228 
    229 
    230     //关流
    231     public static  void stop() throws Exception {
    232         connection.close();
    233         System.out.println("____connection_close_done____");
    234     }
    235 }
    Test 测试类
     1 import org.apache.hadoop.hbase.CompareOperator;
     2 import org.apache.hadoop.hbase.util.Bytes;
     3 
     4 import java.util.Arrays;
     5 import java.util.List;
     6 
     7 public class Test {
     8     public static void main(String[] args) throws Exception {
     9         //查询所有表
    10         HBase_Util.list();
    11         //创建表
    12         List<String> list = Arrays.asList("info","data");
    13         HBase_Util.build_Table("user_info2",list);
    14         //删除某表
    15         HBase_Util.drop_Table("user_info2");
    16         //查询某表结构
    17         HBase_Util.desc_Table("user_info2");
    18         //插入一条数据
    19         HBase_Util.insert_Row("user_info2","001","info","name","zhangsan");
    20         HBase_Util.insert_Row("user_info2","001","info","age","18");
    21         HBase_Util.insert_Row("user_info2","001","info","sex","male");
    22         HBase_Util.insert_Row("user_info2","001","data","Math","100");
    23         HBase_Util.insert_Row("user_info2","001","data","Chinese","97");
    24         HBase_Util.insert_Row("user_info2","001","data","English","95");
    25 
    26         HBase_Util.insert_Row("user_info2","002","info","name","lisi");
    27         HBase_Util.insert_Row("user_info2","002","info","age","19");
    28         HBase_Util.insert_Row("user_info2","002","info","sex","famale");
    29         HBase_Util.insert_Row("user_info2","002","data","Math","70");
    30         HBase_Util.insert_Row("user_info2","002","data","Chinese","100");
    31         HBase_Util.insert_Row("user_info2","002","data","English","99");
    32 
    33         HBase_Util.insert_Row("user_info2","003","info","name","wangwu");
    34         HBase_Util.insert_Row("user_info2","003","info","age","20");
    35         HBase_Util.insert_Row("user_info2","003","info","sex","male");
    36         HBase_Util.insert_Row("user_info2","003","data","Math","65");
    37         HBase_Util.insert_Row("user_info2","003","data","Chinese","50");
    38         HBase_Util.insert_Row("user_info2","003","data","English","49");
    39         //全查某表
    40         HBase_Util.scan_All("user_info2");
    41         //查询一条记录
    42         HBase_Util.scan_Row("user_info2","001");
    43         //查询一条记录的 特定列族的 数据
    44         HBase_Util.get_value_by_family("user_info2","001","info");
    45         //查询一条记录的 特定列的 数据
    46         HBase_Util.get_value_by_qualifier("user_info2","001","data","Math");
    47         //查询区间数据 [前闭后开)
    48         HBase_Util.scan_Rows("user_info2","001","003");
    49         //特定列过滤查询
    50         HBase_Util.scan_Filter("user_info2","data","Math", CompareOperator.GREATER, Bytes.toBytes(60));
    51         //删除某一条记录
    52         HBase_Util.delete_Row("user_info2","003");
    53         
    54         HBase_Util.stop();
    55     }
    56 }
  • 相关阅读:
    解决:fontawesome-webfont.woff2?v=4.6.3 404 (Not Found)
    Leetcode练习(Python):树类:第116题:填充每个节点的下一个右侧节点指针:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。
    Leetcode练习(Python):树类:第114题:二叉树展开为链表:给定一个二叉树,原地将它展开为一个单链表。
    Leetcode练习(Python):树类:第113题: 路径总和 II:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。
    Leetcode练习(Python):树类:求根到叶子节点数字之和:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。
    Leetcode练习(Python):树类:第199题:二叉树的右视图:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
    大数据可视化案例二:数据可视化地图
    大数据可视化案例一:词云
    大数据获取案例:Python网络爬虫实例
    Leetcode练习(Python):树类:第236题:二叉树的最近公共祖先:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
  • 原文地址:https://www.cnblogs.com/chang09/p/15986859.html
Copyright © 2020-2023  润新知