hbase java api 两种方式

NoSQL Hbase JAVA API

实例一

导入架包:

<dependency>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase-client</artifactId>
  <version>1.3.5</version>
</dependency>

首先在java中新建一个HbaseService类

步骤一:添加配置

public static Connection getConnection() throws IOException {
    Configuration configuration = HBaseConfiguration.create();
    Connection connection= ConnectionFactory.createConnection(configuration);
    return connection;
}

步骤二:快速执行方法

public static void main(String[] args) throws IOException{
    //创建一张表
    createTable();
    //向表中插入数据
    insertTable();
    //查询表中对应的数据
    searchTable();
    //查询所有
    searchAll();
}

步骤三:查询所有

private static void searchAll() throws IOException{
    //scan 'emps',FILTER=>ValueFilter(=,'substring:c')
    Table emps = getConnection().getTable(TableName.valueOf("emps"));
    Scan scan=new Scan();
    FilterList lst = new FilterList();
    ValueFilter vf = new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("c"));
    lst.addFilter(vf);
    scan.setFilter(lst);
    ResultScanner scanner = emps.getScanner(new Scan());//ResultSet=>Result
    Iterator<Result> rs = scanner.iterator();
    while (rs.hasNext()){
        Result row = rs.next();
        //可以取出多个数值
        System.out.println(row.getValue("base".getBytes(),"name".getBytes()));

    }
}

步骤四:查询表中对应的数据

private static void searchTable() throws IOException{
    //get 'emps','001','base:name'
    Table emps = getConnection().getTable(TableName.valueOf("emps"));
    Get get = new Get("001".getBytes());
    Result result = emps.get(get);
    result.getValue("base".getBytes(),"name".getBytes());
    String str =Bytes.toString(result.getValue("base".getBytes(),"name".getBytes()));
    System.out.println(str);
}

步骤五:向表中插入数据

private static void insertTable() throws IOException{
    //put 'emps','001','base:name','value'
    Table emps=getConnection().getTable(TableName.valueOf("emps"));
    //添加001
    Put put = new Put("001".getBytes());
    put.addColumn("base".getBytes(),"name".getBytes(),"cm".getBytes());
    emps.put(put);
}

步骤六:创建一张表格

private static void createTable() throws IOException{
    Admin admin=getConnection().getAdmin();
    //给个表名
    HTableDescriptor table=new HTableDescriptor(TableName.valueOf("emps"));
   //创建一个列族
    HColumnDescriptor base=new HColumnDescriptor("base");
    //表上加列族
    table.addFamily(base);
    admin.createTable(table);
}

步骤七:我们打包前可以修改包名:

进入pom.xml:在<build>下一行添加<filalName>包名<filalName>

步骤八:进入Linux执行下面命令:

[root@head42 ~]# java -cp hb.jar:/opt/hbase-1.3.5/lib/* com.njbdqn.services.HbaseService

实例二

步骤一:导入架包:

<dependency>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase-client</artifactId>
  <version>1.3.5</version>
</dependency>

步骤二:编写java代码

public class hbase {
    public static void main(String[] args) throws IOException {
        createTable();
        listTables();
        //找配置文件
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","localhost");
        //设置端口号
        conf.set("hbase.zookeeper.property.clientPort","2181");
        Connection connection= ConnectionFactory.createConnection(conf);
        Admin admin=connection.getAdmin();
        //拿到表的名字类型数组,进行for循环
        for (TableName name:admin.listTableNames()) {
            System.out.println(name.toString());
        }
        connection.close();
    }

步骤三:以下是开始打包命令:

 

步骤四:运行并形成一个包:

步骤五:进入Linux执行:[root@head42 ~]# java -cp hbase-java.jar cn.kgc.hbase

(hbase-java.jar:为导入的架包 cn.kgc.hbase:类名地址)

执行成功如下:

这样就可以了哈!

原文地址:https://www.cnblogs.com/tudousiya/p/11234031.html