docker搭建hbase 全部流程(包含本地API访问)

本文详细介绍了如何使用Docker下载并安装HBase,包括搜索、下载镜像、启动容器以及配置本地Java环境以访问HBase。同时提供了下载winutils的方法和步骤,以及注意事项如配置系统环境变量和hosts文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用docker下载并安装hbase

1、搜索:docker search hbase

2、下载:docker pull harisekhon/hbase(一定要下载这个,下面都是围绕此展开的)

3、启动容器:

docker run -d -p 2181:2181 -p 16000:16000 -p 16010:16010 -p 16020:16020 -p 16030:16030 --name hbase harisekhon/hbase

这里只是对应了 2181、16000、16010、16020端口,像8080,8085,9090这些也会启动,因为后面api不会用到,因此在这里不用添加,也不要开放防火墙端口,以免被攻击。

4、进入容器内部,基本是可以实现创建 新增这些。就不赘述了!

二、本地java 访问hbase

1、去github下载,很可能在国内打不开。因此我把 winutils文件放在了网盘里,供大家下载。

如果你的hadoop已经配置在了远端,这里只需要下载winutils就好。如果是在本地的话,会在下一期文章详细说明。下载地址:https://url29.ctfile.com/f/19219029-1012063766-b64cce?p=7845 (访问密码

要在 Java API 中连接 Docker 上运行的 HBase 数据库,可以按照以下步骤操作: ### 步骤 1: 确保 Docker 容器正常启动 首先需要确保已经通过 Docker 启动了一个包含 HBase容器,并暴露了必要的端口(如 `9090` 或者其他默认通信端口)。例如命令如下: ```bash docker run --name my-hbase -p 2181:2181 -p 60010:60010 -d hortonworks/hbase ``` 其中 `-p` 参数用于映射宿主机与容器之间的网络端口。 ### 步骤 2: 引入依赖项到项目中 在 Maven 工程下添加相关的 HBase 和 Zookeeper 依赖。参考下面的示例配置: ```xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>2.x.y</version> <!-- 替换为合适的版本 --> </dependency> <!-- 如果未内置Zookeeper客户端支持,则加入此依赖 --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.x.y</version> <!-- 替换为匹配HBase使用的zk版本 --> </dependency> ``` ### 步骤 3: 编写代码初始化连接并访问数据表 接下来编写实际的操作逻辑来创建对 HBase 表的 CRUD 操作功能,以下是简单的案例展示如何建立链接及读取、写入记录。 ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; public class HBaseDockerConnection { public static void main(String[] args) throws Exception { // 创建一个新的 HBase 配置实例 Configuration config = HBaseConfiguration.create(); // 设置 ZK 地址 (docker 映射出的本地地址) String zkQuorum = "localhost"; // 根据实际情况调整 IP int clientPort = 2181; // 默认 zookeeper 监听端口号 config.set("hbase.zookeeper.quorum", zkQuorum); config.setInt("hbase.zookeeper.property.clientPort", clientPort); try(Connection connection = ConnectionFactory.createConnection(config)) { TableName tableName = TableName.valueOf("my_table"); Table table = connection.getTable(tableName); if (!table.exists()) { Admin admin = connection.getAdmin(); HTableDescriptor desc = new HTableDescriptor(TableName.valueOf("test")); desc.addFamily(new HColumnDescriptor("cf")); admin.createTable(desc); System.out.println("Created the table."); return ; } Put putRecord = new Put(Bytes.toBytes("rowkey_001")); putRecord.addColumn(Bytes.toBytes("column_family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value")); table.put(putRecord); Get getRecord = new Get(Bytes.toBytes("rowkey_001")); Result result = table.get(getRecord); byte[] value = result.getValue( Bytes.toBytes("column_family"), Bytes.toBytes("qualifier") ); System.out.printf("Read from DB:%s%n", Bytes.toString(value)); table.close(); } catch(Exception e){ e.printStackTrace(); } } } ``` 以上程序展示了从基本环境搭建直到完成一次插入再检索的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大拿@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值