自学内容网 自学内容网

3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例

(一)练习常用的HBase Shell命令

1、启动HBase

先启动HDFS 再启动HBase
在这里插入图片描述
进入shell交互式执行环境
在这里插入图片描述

2、练习shell命令

在这里插入图片描述

create scan list describe alter

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

put

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

get

在这里插入图片描述

delete

在这里插入图片描述

在这里插入图片描述

drop

删除表前要disable它
在这里插入图片描述

关于NoSQL数据库中的列族和列

这些数据库允许你以非常灵活的方式存储和检索数据
在这里插入图片描述

在这里插入图片描述

3、关闭hbase服务

在这里插入图片描述

(二)HBase 常用的Java API 及应用实例

1、启动hbase服务

在这里插入图片描述

2、启动eclipse

在这里插入图片描述

3、新建java project

导入jar包

在这里插入图片描述
导入/usr/local/hbase/lib中的所有jar包
再导入/usr/local/hbase/lib/client-facing-thirdparty中的所有jar 包
在这里插入图片描述

创建类文件

在这里插入图片描述

常用Java API:

在这里插入图片描述

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;

public class ExampleForHBase {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void main(String[] args) throws IOException {
        init();
        createTable("student", new String[]{"score"});
        insertData("student", "zhangsan", "score", "English", "69");
        insertData("student", "zhangsan", "score", "Math", "86");
        insertData("student", "zhangsan", "score", "Computer", "77");
        getData("student", "zhangsan", "score", "English");
        close();
    }

    public static void init() {
        configuration = HBaseConfiguration.create();
        configuration.set("hbase.rootdir", "hdfs://localhost:9000/hbase");
        try {
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void close() {
        try {
            if (admin != null) {
                admin.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void createTable(String myTableName, String[] colFamily) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        if (admin.tableExists(tableName)) {
            System.out.println("table is exists!");
        } else {
            TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);
            for (String str : colFamily) {
                ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(str)).build();
                tableDescriptor.setColumnFamily(family);
            }
            admin.createTable(tableDescriptor.build());
        }
    }

    public static void insertData(String tableName, String rowKey, String colFamily, String col, String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), Bytes.toBytes(val));
        table.put(put);
        table.close();
    }

    public static void getData(String tableName, String rowKey, String colFamily, String col) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        get.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col));
        Result result = table.get(get);
        System.out.println(new String(result.getValue(Bytes.toBytes(colFamily), Bytes.toBytes(col))));
        table.close();
    }
}

run——>run as application

打开hbase shell

list scan
在这里插入图片描述
在这里插入图片描述

退出hbase shell ——exit

4、关闭 hbase


原文地址:https://blog.csdn.net/2301_78696436/article/details/142622407

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!