• hbase java api


    pom.xml

    <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>2.8.5</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>2.8.5</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>2.8.5</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-client</artifactId>
                <version>1.3.1</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-server</artifactId>
                <version>1.3.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-common</artifactId>
                <version>1.3.1</version>
            </dependency>
    import java.io.IOException;
    
    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.Admin;
    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;
    
    public class HbaseDemo {
        private static Configuration conf = HBaseConfiguration.create();
        private static Admin admin;
     
        static {
            conf.set("hbase.rootdir", "hdfs://master01:9000/hbase");
            conf.set("hbase.zookeeper.quorum", "master01,slave01,slave02");
            conf.set("hbase.zookeeper.property.clientPort", "2181");
     
            try {
                Connection connection = ConnectionFactory.createConnection(conf);
                admin = connection.getAdmin();
                System.err.println(admin.toString());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
        //    创建表,可以同时创建多个列族
        public void createTable(String tableName, String... columnFamily) {
            TableName tableNameObj = TableName.valueOf(tableName);
            try {
                if (admin.tableExists(tableNameObj)) {
                    System.out.println("Table: " + tableName + " already exists!");
                } else {
                    HTableDescriptor tb = new HTableDescriptor(tableNameObj);
                    for (int i = 0; i < columnFamily.length; i++) {
                        HColumnDescriptor family = new HColumnDescriptor(columnFamily[i]);
                        tb.addFamily(family);
                    }
                    admin.createTable(tb);
                    System.out.println(tableName + "创建成功");
                }
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println(tableName + "创建失败");
            }
        }
     
        //    删除表
        public void delTable(String tableName) {
            TableName tableNameObj = TableName.valueOf(tableName);
            try {
                if (admin.tableExists(tableNameObj)) {
                    admin.disableTable(tableNameObj);
                    admin.deleteTable(tableNameObj);
                    System.out.println(tableName + " 删除成功");
                } else {
                    System.out.println(tableName + " 表不存在");
                }
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("删除失败");
            }
        }
     
        //    插入数据
        public void insertRecord(String tableName, String row, String columnFamily, String qualifier, String value) {
            try {
                Connection connection = ConnectionFactory.createConnection(conf);
                Table table = connection.getTable(TableName.valueOf(tableName));
                Put put = new Put(row.getBytes());
                put.addColumn(columnFamily.getBytes(), qualifier.getBytes(), value.getBytes());
                table.put(put);
                table.close();
                connection.close();
                System.out.println(tableName + " 表插入成功");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("插入失败");
            }
        }
     
        //    删除数据
        public void deleteRecord(String tableName, String row, String columnFamily, String qualifier) {
            try {
                Connection connection = ConnectionFactory.createConnection(conf);
                Table table = connection.getTable(TableName.valueOf(tableName));
                Delete delete = new Delete(row.getBytes());
                delete.addColumn(columnFamily.getBytes(), qualifier.getBytes());
                table.delete(delete);
                table.close();
                connection.close();
                System.out.println(tableName + " 表删除成功");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("删除失败");
            }
        }
     
        //    获取某一行的数据
        public void getOneRecord(String tableName, String row) {
            try {
                Connection connection = ConnectionFactory.createConnection(conf);
                Table table = connection.getTable(TableName.valueOf(tableName));
                Get get = new Get(row.getBytes());
                Result result = table.get(get);
                for (Cell cell : result.rawCells()) {
                    System.out.println(new String(result.getRow()) + ":" + new String(CellUtil.cloneFamily(cell)) + ":"
                            + new String(CellUtil.cloneQualifier(cell)) + ":" + new String(CellUtil.cloneValue(cell)));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
        //    获取表中的所有数据
        public void getAll(String tableName) {
            try {
                Connection connection = ConnectionFactory.createConnection(conf);
                Table table = connection.getTable(TableName.valueOf(tableName));
                Scan scan = new Scan();
                ResultScanner results = table.getScanner(scan);
                for (Result result : results) {
                    for (Cell cell : result.rawCells()) {
                        System.out.println(new String(result.getRow()) + ":" + new String(CellUtil.cloneFamily(cell)) + ":"
                                + new String(CellUtil.cloneQualifier(cell)) + ":" + new String(CellUtil.cloneValue(cell)));
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
        public static void main(String[] args) {
            HbaseDemo hbaseDemo = new HbaseDemo();
            //hbaseDemo.createTable("userinfo", "cf1", "cf2");
           // hbaseDemo.delTable("userinfo");
    //        for(int i=0;i<10;i++) {
    //            hbaseDemo.insertRecord("userinfo","001","baseinfo","age"+i,"18");
    //        }
            //hbaseDemo.deleteRecord("userinfo", "001", "baseinfo", "age");
              hbaseDemo.getOneRecord("userinfo", "001");
           // hbaseDemo.getAll("userinfo");
        }
    }
  • 相关阅读:
    spring jdbc和spring mybatis没什么很大的区别,为什么要用mybatis优势在哪里
    spring概述及环境搭建
    一些关于使用分区视图的好主意(转)
    正确选择排序提高查询性能(转)
    线程池的原理和连接池的原理
    编程式事务造成的系统频繁Down机的前后
    《Oracle 高效设计》 读书思考标量子查询查询性能讨论
    ORACLE自动备份方法(转)
    Oracle 10gR2 行变列研究
    索引组织表IOT(转)
  • 原文地址:https://www.cnblogs.com/syscn/p/10190878.html
Copyright © 2020-2023  润新知