HBase API使用

来源:互联网 发布:端口80被system占用 编辑:程序博客网 时间:2024/05/23 19:15

1.创建表

import java.io.IOException;import org.apache.hadoop.conf.Configuration;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.HBaseAdmin;public class CreateTable {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum","node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //列族名        String columnName="info";        //表管理类        Admin admin=connection.getAdmin();        //定义表名        HTableDescriptor tableDescriptor=new HTableDescriptor(TableName.valueOf(tableName));        tableDescriptor.addFamily(new HColumnDescriptor(columnName));        admin.createTable(tableDescriptor);        //定义表结构//      HColumnDescriptor columnDescriptor=new HColumnDescriptor(columnName);//      admin.addColumn(TableName.valueOf(tableName), columnDescriptor);        admin.close();        connection.close();    }}

这里写图片描述

总结:

第一次执行创建了表,第二次执行出现错误了,我没发现,害的找了半天,以后注意增强代码的容错能力。

2.插入

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Table;public class Insert {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum", "node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //列族名        String columnName="info";        //行键        String rowkey="rk1";        //列名        String qulifier="c1";        //值        String value="value1";        //建立表连接        Table table=connection.getTable(TableName.valueOf(tableName));        //用行键实例化Put        Put put=new Put(rowkey.getBytes());        //指定列族名、列名和值        put.addColumn(columnName.getBytes(), qulifier.getBytes(), value.getBytes());        //执行Put        table.put(put);        //关闭表        table.close();        //关闭连接        connection.close();     }}```![这里写图片描述](http://img.blog.csdn.net/20170503155057143?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpamlhbnBlbmcyMDEzXzIwMTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)3.读取<div class="se-preview-section-delimiter"></div>

这里写代码片
“`

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.Table;import org.apache.hadoop.hbase.util.Bytes;public class Read {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum", "node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //列族名        String columnName="info";        //行键        String rowkey="rk1";        //列名        String qulifier="c1";        //建立表连接        Table table=connection.getTable(TableName.valueOf(tableName));        //用行键实例化Get        Get get=new Get(rowkey.getBytes());        //增加列族名和列名条件        get.addColumn(columnName.getBytes(), qulifier.getBytes());        //执行Get返回结果        Result result=table.get(get);        //取出结果        String valueStr=Bytes.toString(result.getValue(columnName.getBytes(), qulifier.getBytes()));        System.out.println(valueStr);        //关闭表        table.close();        //关闭连接        connection.close();    }}

这里写图片描述

4.扫描

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;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;import org.apache.hadoop.hbase.util.Bytes;public class ScanTest {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum", "node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //列族名        String columnName="info";        //开始行键        String startRow="rk1";        //结束行键        String endRow="rk5";        //列名        String qulifier="c1";        //值        String value="value1";        //建立表连接        Table table=connection.getTable(TableName.valueOf(tableName));        //初始化Scan实例        Scan scan=new Scan();        //指定开始行减        scan.setStartRow(startRow.getBytes());        //指定结束行键        scan.setStopRow(endRow.getBytes());        //增加过滤条件        scan.addColumn(columnName.getBytes(), qulifier.getBytes());        //返回结果        ResultScanner rs=table.getScanner(scan);        //迭代并取出结果        for(Result result:rs){            String valueStr=Bytes.toString(result.getValue(columnName.getBytes(), qulifier.getBytes()));            System.out.println(valueStr);        }        //关闭表        table.close();        //关闭连接        connection.close();    }}

这里写图片描述

5.删除单元格

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;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.Table;public class DeleteTest {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum", "node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //列族名        String columnName="info";        //行键        String rowkey="rk2";        //列名        String qulifer="c1";        //值        String value="value3";        //建立表连接        Table table=connection.getTable(TableName.valueOf(tableName));        //用行键来实例化Delete实例        Delete delete=new Delete(rowkey.getBytes());        //增加删除条件        delete.addColumn(columnName.getBytes(), qulifer.getBytes());        //执行删除        table.delete(delete);        //关闭表        table.close();        //关闭连接        connection.close();        System.out.println("删除成功!");    }}

这里写图片描述
6.删除表

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;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;public class DropTable {    public static void main(String[] args) throws IOException {        Configuration conf=HBaseConfiguration.create();        //zookeeper地址        conf.set("hbase.zookeeper.quorum", "node1,node2,node3");        //建立连接        Connection connection=ConnectionFactory.createConnection(conf);        //表名        String tableName="test-hbase";        //表管理类        Admin admin=connection.getAdmin();        //首先禁用表        admin.disableTable(TableName.valueOf(tableName));        //最后删除表        admin.deleteTable(TableName.valueOf(tableName));        //关闭表管理        admin.close();        //关闭连接        connection.close();        System.out.println("执行成功");    }}

这里写图片描述

1 0
原创粉丝点击