使用Docker安装HBase,并使用Java api连接详解

最近跟着几篇错误的博客使用docker安装hbase,结果错误百出。被BUG折磨了两天,终于找到了问题,整理了一篇详细的安装步骤,希望大家安装顺利!

本次是在云服务器上进行的配置。

@ Date 2024年6月5日

@ Author yu

1. 拉取镜像

这里我们拉取的是1.3版本,已经测试过了,没有问题,建议大家也选择这个版本

docker pull harisekhon/hbase:1.3

我这边已经装过了,第一次下载显示的不会不一样

2. 运行容器

需要映射的端口号必须与下面的一致,否则后续将无法通过javaAPI连接!!!小编之前跟着低质量博客做的,就在这里卡了两天。。。如果使用的是云服务器,还必须要在安全组里打开所有安全组!!!

docker run -d -h myhbase -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16020:16020 -p 16301:16301 --name hbase harisekhon/hbase:1.3

配置好后,通过Docker ps 可以看到上述信息

3. Master节点web校验

浏览器访问:http://换成你的ip地址:16010/​​​​​​

如果和下方显示一致,则说明安装成功:

4. 测试HBash shell

使用下面的命令可以通过shell操作Hbase

5. 使用java API

这里需要导一些包,建议创建Maven工程,由于Hbase是构架于HDFS之上的,所以需要导入hadoop依赖才能操作分布式文件系统

pom文件:

        <!-- Hadoop所需依赖包 -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.5.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client -->
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.3.2</version>
        </dependency>

测试连接:

/**
* ClassName: HBaseTest
* @Author   雨
* @Create 2024/6/5  8:02
* @Version 1.0

*/

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.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class HBaseTest{
    public static void main(String[] args) {
        try {
             // 创建 HBase 配置
            Configuration config = HBaseConfiguration.create();
            config.set("hbase.zookeeper.quorum", "这里填写你的主机IP(如果是云服务器,添加公网IP)");
            config.set("hbase.zookeeper.property.clientPort", "2181");
            config.set("hbase.master", "这里填写你的主机IP(如果是云服务器,添加公网IP):16010");//这里的ip和上面的一样


            // 创建 HBase 连接
            Connection connection = ConnectionFactory.createConnection(config);
            Admin admin = connection.getAdmin();

            // 定义表名和列族名
            TableName tableName = TableName.valueOf("test_table");
            byte[] columnFamily = "data".getBytes();
//
            HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);
            tableDescriptor.addFamily(new HColumnDescriptor(columnFamily));
            // 检查表是否存在,如果不存在则创建
            admin.createTable(tableDescriptor);
            System.out.println("创建表成功!");
            System.out.println("41");
            // 向表中插入数据
            Table table = connection.getTable(tableName);
            System.out.println("44");
            Put put = new Put(Bytes.toBytes("row1"));
            put.addColumn(columnFamily, Bytes.toBytes("col1"), Bytes.toBytes("value1"));
            put.addColumn(columnFamily, Bytes.toBytes("col2"), Bytes.toBytes("value2"));
            System.out.println("48");
            table.put(put);
            System.out.println("50");
            System.out.println("Data inserted successfully.");

            // 关闭连接
            table.close();
            connection.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

只需要修改上方红框框住的内容,改成你的主机IP地址(如果是云服务器,可以添加云服务器的公网IP地址)

如果测试正常,那么恭喜你,安装成功!

如果出现阻塞,没反应,那就看看是不是哪些地方没有按照上述操作来。

如果严格按照上述步骤,应该问题不大。

如有转载,请注明出处。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值