• Hbase Basic


    启动:start-hbase.sh

    停止:stop-hbase.sh

    进入shell:hbase shell

      状态:status

      创建表:create 'tableName', 'colFam1'

      查看表包含行数:list 'tableName'

      列出所有:scan 'tableName'

      插入:put 'tableName', 'rowName', 'colFam1:qualify', 'value'

      查询:get 'tableName', 'rowName'

      删除:delete 'tableName', 'rowName'

      禁用表:disable 'tableName'

      删除表:drop 'tableName'

      退出shell:exit


    添加列族: java实现

    disable 'tableName'

    alter 'tableName', NAME=>'fam2'

    enable 'tableName'

    删除列族:alter 'tableName', {NAME=>'fam2', METHOD=>'delete'}
    获取指定时间的值:get 'my','id1',{COLUMN=>'fam1:q1',TIMESTAMP=>1408261511642}
    计数器:incr 'my','id2','fam1:age'
    查询计数:get_counter 'my','id1','fam1:age',


    HBaseHelper

    package util;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.KeyValue;
    import org.apache.hadoop.hbase.client.Get;
    import org.apache.hadoop.hbase.client.HBaseAdmin;
    import org.apache.hadoop.hbase.client.HTable;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.client.Result;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    /**
     * Used by the book examples to generate tables and fill them with test data.
     */
    public class HBaseHelper {
    
      private Configuration conf = null;
      private HBaseAdmin admin = null;
    
      protected HBaseHelper(Configuration conf) throws IOException {
        this.conf = conf;
        this.admin = new HBaseAdmin(conf);
      }
    
      public static HBaseHelper getHelper(Configuration conf) throws IOException {
        return new HBaseHelper(conf);
      }
    
      public boolean existsTable(String table)
      throws IOException {
        return admin.tableExists(table);
      }
    
      public void createTable(String table, String... colfams)
      throws IOException {
        createTable(table, null, colfams);
      }
    
      public void createTable(String table, byte[][] splitKeys, String... colfams)
      throws IOException {
        HTableDescriptor desc = new HTableDescriptor(table);
        for (String cf : colfams) {
          HColumnDescriptor coldef = new HColumnDescriptor(cf);
          desc.addFamily(coldef);
        }
        if (splitKeys != null) {
          admin.createTable(desc, splitKeys);
        } else {
          admin.createTable(desc);
        }
      }
    
      public void disableTable(String table) throws IOException {
        admin.disableTable(table);
      }
    
      public void dropTable(String table) throws IOException {
        if (existsTable(table)) {
          disableTable(table);
          admin.deleteTable(table);
        }
      }
    
      public void fillTable(String table, int startRow, int endRow, int numCols,
                            String... colfams)
      throws IOException {
        fillTable(table, startRow, endRow, numCols, -1, false, colfams);
      }
    
      public void fillTable(String table, int startRow, int endRow, int numCols,
                            boolean setTimestamp, String... colfams)
      throws IOException {
        fillTable(table, startRow, endRow, numCols, -1, setTimestamp, colfams);
      }
    
      public void fillTable(String table, int startRow, int endRow, int numCols,
                            int pad, boolean setTimestamp, String... colfams)
      throws IOException {
        fillTable(table, startRow, endRow, numCols, pad, setTimestamp, false, colfams);
      }
    
      public void fillTable(String table, int startRow, int endRow, int numCols,
                            int pad, boolean setTimestamp, boolean random,
                            String... colfams)
      throws IOException {
        HTable tbl = new HTable(conf, table);
        Random rnd = new Random();
        for (int row = startRow; row <= endRow; row++) {
          for (int col = 0; col < numCols; col++) {
            Put put = new Put(Bytes.toBytes("row-" + padNum(row, pad)));
            for (String cf : colfams) {
              String colName = "col-" + padNum(col, pad);
              String val = "val-" + (random ?
                Integer.toString(rnd.nextInt(numCols)) :
                padNum(row, pad) + "." + padNum(col, pad));
              if (setTimestamp) {
                put.add(Bytes.toBytes(cf), Bytes.toBytes(colName),
                  col, Bytes.toBytes(val));
              } else {
                put.add(Bytes.toBytes(cf), Bytes.toBytes(colName),
                  Bytes.toBytes(val));
              }
            }
            tbl.put(put);
          }
        }
        tbl.close();
      }
    
      public String padNum(int num, int pad) {
        String res = Integer.toString(num);
        if (pad > 0) {
          while (res.length() < pad) {
            res = "0" + res;
          }
        }
        return res;
      }
    
      public void put(String table, String row, String fam, String qual,
                      String val) throws IOException {
        HTable tbl = new HTable(conf, table);
        Put put = new Put(Bytes.toBytes(row));
        put.add(Bytes.toBytes(fam), Bytes.toBytes(qual), Bytes.toBytes(val));
        tbl.put(put);
        tbl.close();
      }
    
      public void put(String table, String row, String fam, String qual, long ts,
                      String val) throws IOException {
        HTable tbl = new HTable(conf, table);
        Put put = new Put(Bytes.toBytes(row));
        put.add(Bytes.toBytes(fam), Bytes.toBytes(qual), ts,
                Bytes.toBytes(val));
        tbl.put(put);
        tbl.close();
      }
    
      public void put(String table, String[] rows, String[] fams, String[] quals,
                      long[] ts, String[] vals) throws IOException {
        HTable tbl = new HTable(conf, table);
        for (String row : rows) {
          Put put = new Put(Bytes.toBytes(row));
          for (String fam : fams) {
            int v = 0;
            for (String qual : quals) {
              String val = vals[v < vals.length ? v : vals.length - 1];
              long t = ts[v < ts.length ? v : ts.length - 1];
              put.add(Bytes.toBytes(fam), Bytes.toBytes(qual), t,
                Bytes.toBytes(val));
              v++;
            }
          }
          tbl.put(put);
        }
        tbl.close();
      }
    
      public void dump(String table, String[] rows, String[] fams, String[] quals)
      throws IOException {
        HTable tbl = new HTable(conf, table);
        List<Get> gets = new ArrayList<Get>();
        for (String row : rows) {
          Get get = new Get(Bytes.toBytes(row));
          get.setMaxVersions();
          if (fams != null) {
            for (String fam : fams) {
              for (String qual : quals) {
                get.addColumn(Bytes.toBytes(fam), Bytes.toBytes(qual));
              }
            }
          }
          gets.add(get);
        }
        Result[] results = tbl.get(gets);
        for (Result result : results) {
          for (KeyValue kv : result.raw()) {
            System.out.println("KV: " + kv +
              ", Value: " + Bytes.toString(kv.getValue()));
          }
        }
      }
    }

    Main

    package test;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.client.HTable;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import util.HBaseHelper;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
            Configuration conf = HBaseConfiguration.create(); 
            HBaseHelper helper = HBaseHelper.getHelper(conf);
            String tableName = "testtable";
            
            if (helper.existsTable(tableName)) {
                helper.dropTable(tableName);
            }        
            helper.createTable(tableName, "colfam1");
            
            HTable table = new HTable(conf, tableName); 
            Put put = new Put(Bytes.toBytes("row1")); 
            put.add(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"),
                      Bytes.toBytes("val1")); 
            put.add(Bytes.toBytes("colfam1"), Bytes.toBytes("qual2"),
                      Bytes.toBytes("val2")); 
            table.put(put); 
    
        }
    
    }
  • 相关阅读:
    python学习day02
    鼓起勇气 大胆说不
    spring系列---- spring-mvc1
    win7-64位 jdk安装
    项目分层以及阶段期限规划
    老油条之记
    论软件与管理的关系---企业管理软件的末路
    软件项目管理之觞
    世界在变化-----谷歌不安全
    LPR利率与固定利率哪个更合算?
  • 原文地址:https://www.cnblogs.com/manhua/p/3907318.html
Copyright © 2020-2023  润新知