美文网首页工作生活
HBase | 基本操作

HBase | 基本操作

作者: icebreakeros | 来源:发表于2019-07-02 15:40 被阅读0次

基本操作

hbase shell

hbase shell
> status
> version
> list
> create 'member', 'id', 'address', 'info'
> describe 'member'
> exists 'member'

> is_enabled 'member'
> is_disabled 'member'
> disable 'member'

> alter 'member', {NAME => 'id', METHOD => 'delete'}
> enable 'member'
> put 'member', 'xiaoming', 'info:age', '24'
> put 'member', 'xiaoming', 'info:birthday', '1994-11-22'
> put 'member', 'xiaoming', 'info:company', 'alibaba'
> put 'member', 'xiaoming', 'address:contry', 'china'
> put 'member', 'xiaoming', 'address:province', 'beijing'
> put 'member', 'xiaoming', 'address:city', 'beijing'
> get 'member', 'xiaoming'
> get 'member', 'xiaoming', 'info'
> get 'member', 'xiaoming', 'info:age'
> get 'member', 'xiaoming', {COLUMN => 'info:age', TIMESTAMP => 1514207050000}
> scan 'member'

> delete 'member', 'xiaoming', 'info:age'
> deleteall 'member', 'xiaoming'
> count 'member'
> truncate 'member'
> quit

hbase程序

# pom.xml
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.7.2</version>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdfs</artifactId>
    <version>2.7.2</version>
</dependency>
<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>1.2.7</version>
</dependency>

# ConnectionHbase.java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.util.Optional;

public class ConnectionHbase {
    public void connection() throws IOException {
        Configuration configuration = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum", 
"192.168.219.53,192.168.219.54,192.168.219.55");
        configuration.set("hbase.rootdir", 
"hdfs://192.168.219.52:9000/hbase");
        
        Connection connection = ConnectionFactory.createConnection(configuration);
        Admin admin = connection.getAdmin();

        String tableName = "student";
        delete(admin, tableName);

        create(admin, tableName, "address", "info");
        put(connection, tableName, "xiaoming", "info", "age", "24");
        put(connection, tableName, "xiaoming", "address", "city", "beijing");
        put(connection, tableName, "lihua", "address", "contry", "china");
        put(connection, tableName, "lihua", "info", "company", "alibaba");

        get(connection, tableName, "lihua");
        getAll(connection, tableName);
        admin.close();
        connection.close();
    }

    private void create(Admin admin, String tableName, String... columns) 
        throws IOException {
        TableName table = TableName.valueOf(tableName);
        if (!admin.tableExists(table)) {
            HTableDescriptor tableDescriptor = new HTableDescriptor(table);
            for (String columnFamily : columns) {
                tableDescriptor.addFamily(new HColumnDescriptor(columnFamily));
            }
            admin.createTable(tableDescriptor);
        }
    }

    private void delete(Admin admin, String tableName) throws IOException {
        TableName table = TableName.valueOf(tableName);
        if (admin.tableExists(table)) {
            admin.disableTable(table);
            admin.deleteTable(table);
        }
    }

    private void put(Connection connection, 
      String tableName, 
      String rowKey, 
      String family, 
      String qualifier, 
      String value) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(Bytes.toBytes(rowKey));
        put.addColumn(Bytes.toBytes(family), 
          Bytes.toBytes(qualifier), Bytes.toBytes(value));
        table.put(put);
        table.close();
    }

    private void get(Connection connection, String tableName, String row) 
        throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(Bytes.toBytes(row));
        Result result = table.get(get);
        System.out.println(String.valueOf(result));
    }

    private void getAll(Connection connection, String tableName) 
        throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        ResultScanner scanner = table.getScanner(new Scan());
        for (Result result : scanner) {
            System.out.println(String.valueOf(result));
        }
    }
}

java -cp hadoop.jar com.icebreakerzr.boot.Application

相关文章

网友评论

    本文标题:HBase | 基本操作

    本文链接:https://www.haomeiwen.com/subject/sqtthctx.html