zoukankan      html  css  js  c++  java
  • hbase的api操作

    创建maven工程,修改jdk

    pom文件里添加需要的jar包

    dependencies>

      <dependency>

                         <groupId>jdk.tools</groupId>

                         <artifactId>jdk.tools</artifactId>

                         <version>1.8</version>

                         <scope>system</scope>

                         <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>

                  </dependency>

        <dependency>

          <groupId>junit</groupId>

          <artifactId>junit</artifactId>

          <version>3.8.1</version>

          <scope>test</scope>

        </dependency>

      <dependency>

        <groupId>org.apache.hbase</groupId>

        <artifactId>hbase-it</artifactId>

        <version>1.2.5</version>

        <type>pom</type>

    </dependency> 

      <dependency>

         <groupId>org.apache.hadoop</groupId>

         <artifactId>hadoop-common</artifactId>

         <version>2.6.1</version>

      </dependency>

      </dependencies>

    import java.io.IOException;
    import java.util.ArrayList;
    
    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.TableName;
    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.client.ResultScanner;
    import org.apache.hadoop.hbase.client.Scan;
    import org.apache.hadoop.hbase.util.Bytes;
    
    
    public class CreateTableTest {
    
        static Configuration conf = HBaseConfiguration.create();//读取hbase的配置文件
        
        static HBaseAdmin admin = null;//执行管理员
        
        
    public static void main(String[] args) throws Exception{
        
        admin=new HBaseAdmin(conf);
    //    createTable();
    //    listTable();
    //    deleteTable();
    //    listTable();
    //    putData();
    //    scanTable();
        getData();
    //    putaLots();
        
        
        
    }
    //创建表
    public static void createTable() throws Exception, IOException{
            //表的描述对象
            HTableDescriptor table=new HTableDescriptor(TableName.valueOf("javaemp1"));
            //列簇
            table.addFamily(new HColumnDescriptor("personal"));
            table.addFamily(new HColumnDescriptor("professional"));
            
            admin.createTable(table);
            System.out.println("create table finished");
    }
    //列出所有的表
    public static void listTable() throws IOException{
        HTableDescriptor[] Tablelist = admin.listTables();
        for(int i=0;i<Tablelist.length;i++)
        {
            System.out.println(Tablelist[i].getNameAsString());
        }
    }
    //删除表
    public static void deleteTable() throws Exception{
        //删表之前先禁用表
    //    admin.disableTable("javaemp1");
    //    admin.deleteTable("javaemp1");
    //    System.out.println("delete finished");
    
        //删除表中的某一列簇
    //    admin.deleteColumn("javaemp","professional");
    //    System.out.println("delete column");
        
        //增加一列
        admin.addColumn("javaemp",new HColumnDescriptor("professional"));
        System.out.println("add column");
        
    }
    //----------------------------------------------------------------------------------------------------------
    //插入数据
    public static void putData() throws Exception{
        //HTable类实现对单个表的操作,参数为:配置对象,表名
        HTable table = new HTable(conf,"javaemp");
        
        Put p = new Put(Bytes.toBytes("1001"));//实例化Put类,指定rwo key来操作
        Put p1=new Put(Bytes.toBytes("1002"));
        //
        p.add(Bytes.toBytes("personal"),Bytes.toBytes("name"),Bytes.toBytes("lalisa"));
    //    参数:列簇,列,值
        p.add(Bytes.toBytes("personal"),Bytes.toBytes("city"),Bytes.toBytes("beijing"));
        
        table.put(p);
        
        p1.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),Bytes.toBytes("it"));
        p1.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),Bytes.toBytes("16010"));
        
        table.put(p1);
        
        System.out.println("put data finished");
        
        table.close();//释放HTable的资源
    }
    //批量插入数据
    public static void putaLots() throws IOException{
        HTable table = new HTable(conf,"javaemp");
        ArrayList<Put> list = new ArrayList<Put>(10);
        for (int i=0;i<10;i++)
        {
            Put put = new Put(Bytes.toBytes("row"+i));
            put.add(Bytes.toBytes("personal"),Bytes.toBytes("name"),Bytes.toBytes("people"+i));
            list.add(put);
        }
        table.put(list);
        System.out.println("put list finished");
        }
    //获取某一列数据
    public static void getData() throws IOException{
        HTable table = new HTable(conf, "javaemp");
        
        Get get = new Get(Bytes.toBytes("1001"));//实例化Get类
        
        Result result = table.get(get);//获取这一row的数据
        
    //    输出这一行的某一个字段
        byte[] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));    
        String  name=Bytes.toString(value);
        System.out.println("Name:"+name);
        
        //输出这一行的所有数据
        Cell[] cells = result.rawCells();
        for(Cell cell:cells)
        {
            System.out.print(Bytes.toString(CellUtil.cloneRow(cell))+"--");
            System.out.print(Bytes.toString(CellUtil.cloneFamily(cell))+":");
            System.out.print(Bytes.toString(CellUtil.cloneQualifier(cell))+"->");
            System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
            
        }
        
        table.close();//释放HTable的资源
    }
    //scan某一列
    public static void scanTable() throws IOException{
        HTable table = new HTable(conf, "javaemp");
        Scan scan = new Scan();                    //    实例化Scan类
        scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));//scan某列簇的某列
        scan.addFamily(Bytes.toBytes("professional"));//scan某列簇
        ResultScanner scanner = table.getScanner(scan);
        
        for(Result res=scanner.next();res!=null;res=scanner.next())
        {
            System.out.println(res);
        }
        table.close();//释放HTable的资源
    }
    //统计row key的个数
    public static void count(){
        
    }
    //关闭hbase
    public  static void close() throws IOException{
        admin.shutdown();
    }
    }

     

    package com.neworigin.Work;
    
    import java.io.IOException;
    import java.util.ArrayList;
    
    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.TableName;
    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.client.ResultScanner;
    import org.apache.hadoop.hbase.client.Scan;
    import org.apache.hadoop.hbase.util.Bytes;
    
    public class HbaseWork {
        
        static Configuration conf=HBaseConfiguration.create();
    //    static Connection conn= ConnectionFactory.createConnection(conf);
        static HBaseAdmin admin=null;
    public static void createTable() throws IOException{
        HTableDescriptor table=new HTableDescriptor(TableName.valueOf("member"));
        table.addFamily(new HColumnDescriptor("member_id"));
        table.addFamily(new HColumnDescriptor("address"));
        table.addFamily(new HColumnDescriptor("info"));
        admin.createTable(table);
        System.out.println("create table finished");
    }
    public static void deletefamily() throws IOException{
    //    HTableDescriptor table = new HTableDescriptor(TableName.valueOf("member"));
        admin.deleteColumn("member", "member_id");
        System.out.println("delete");
    }
    public static void insertdata() throws IOException{
        HTable table = new HTable(conf,"member");
        ArrayList<Put> list =new ArrayList<Put>(25);
        for(int i=0;i<5;i++)
        {
            Put put = new Put(Bytes.toBytes("row"+i));
            put.add(Bytes.toBytes("address"), Bytes.toBytes("province"), Bytes.toBytes("pr"+i));
            put.add(Bytes.toBytes("address"), Bytes.toBytes("city"), Bytes.toBytes("ct"+i));
            put.add(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("2"+i));
            put.add(Bytes.toBytes("info"), Bytes.toBytes("birthday"), Bytes.toBytes("data"+i));
            put.add(Bytes.toBytes("info"), Bytes.toBytes("company"), Bytes.toBytes("com"+i));
            list.add(put);
        }
        table.put(list);
    }
    public static void getinfo() throws IOException{
        HTable table = new HTable(conf, "member");
    //    for(int i=0;i<5;i++)
    //    {
    //        
    //    }
        Get get = new Get(Bytes.toBytes(("row0")));
        Result result = table.get(get);
        for(Cell cell: result.rawCells())
        {
            System.out.print(Bytes.toString(CellUtil.cloneRow(cell))+"--");
            System.out.print(Bytes.toString(CellUtil.cloneFamily(cell))+":");
            System.out.print(Bytes.toString(CellUtil.cloneQualifier(cell))+"->");
            System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
        }
        
    }
    public static void alterfirstrow() throws IOException{
        HTable table = new HTable(conf, "member");
        Put put = new Put(Bytes.toBytes("row0"));
        put.add(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("30"));
        table.put(put);
    }
    public static void getage() throws IOException{
        HTable table = new HTable(conf,"member");
        Get get = new Get(Bytes.toBytes("row0"));
        Result result = table.get(get);
        byte[] bs = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));
        String age=Bytes.toString(bs);
        System.out.println("age:"+age);
    }
    public static void scanTable() throws IOException{
        Scan scan = new Scan();
        HTable table = new HTable(conf,"member");
        scan.addColumn(Bytes.toBytes("address"), Bytes.toBytes("province"));
        scan.addColumn(Bytes.toBytes("address"), Bytes.toBytes("city"));
        scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"));
        scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("birthday"));
        scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("company"));
        ResultScanner scanner = table.getScanner(scan);
        for(Result res=scanner.next();res!=null;res=scanner.next())
        {
            System.out.println(res);
        }
    }
    public static void countrow() throws IOException{
        HTable table = new HTable(conf,"member");
        Scan scan = new Scan(); 
        ResultScanner scanner = table.getScanner(scan);
        int i=0;
        while(scanner.next()!=null)
        {
            i++;
    //        System.out.println(scanner.next());
        }
        System.out.println(i);
    }
    public static void delTable() throws IOException{
        boolean b = admin.isTableEnabled("member");
        if(b)
        {
            admin.disableTable("member");
        }
        admin.deleteTable("member");
    }
    public static void main(String[] args) throws IOException {
        admin=new HBaseAdmin(conf);
    //    createTable();
    //    deletefamily();
    //    insertdata();
    //    alterfirstrow();
    //    getinfo();
    //    getage();
    //    scanTable();
    //    countrow();
        delTable();
    }
    }
  • 相关阅读:
    Linux 常用命令大全
    冒犯了,问大家一个问题,会linux的进来帮我解决一下
    Linux 软件安装
    Ubuntu 12.04出现“device not managed”错误
    Linux 系统下vi编辑器的使用方法(copy其他人网站的,留着自己查用的)
    tar的打包压缩与解压缩,并解压到指定的目录
    Ubuntu文件的复制、移动和删除命令
    当Ubuntu12.04 如何获取root权限
    windows是用vnc远程连接ubuntu的方法
    Ubuntu 12.04 在root登陆之后没有声音的解决方法
  • 原文地址:https://www.cnblogs.com/chengdonghui/p/7978276.html
Copyright © 2011-2022 走看看