Java 连接 HBase 原理与环境准备
Java 连接 HBase 的原理、环境准备与连接封装
一、为什么一定要用 Java 操作 HBase?
在真实的大数据系统中:
- HBase 不是给人用的
- HBase 是 给程序用的
- Java 是 Hadoop 生态的 第一语言
所以:
Shell = 学习 / 调试工具
Java API = 生产环境唯一方式
二、Java 访问 HBase 的整体架构
Java Client
↓ RPC
HBase RegionServer
↓
HDFS
Java 程序本质上做了三件事:
- 通过 Zookeeper 找到 HBase 集群
- 建立 RPC 连接
- 通过 RegionServer 读写数据
三、版本兼容性说明(非常重要)
| 组件 | 推荐版本 |
|---|---|
| JDK | 1.8 |
| Hadoop | 3.4.1 |
| HBase | 2.4.18 |
错误示范:
- JDK 11 + HBase 2.x(大量坑)
- Hadoop 2.x + HBase 2.x(冲突)
四、Maven 工程创建步骤
1 创建 Maven 项目
mvn archetype:generate
选择:
maven-archetype-quickstart
2 添加依赖(核心)
<dependencies>
<!-- HBase 客户端 -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.4.18</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>2.4.18</version>
</dependency>
<!-- Hadoop -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
这一步出错 = 后面全废
五、Java 连接 HBase 的核心步骤
步骤拆解
- 创建 Configuration
- 指定 Zookeeper 地址
- 创建 Connection(重量级对象)
- 全局复用
六、HBase 连接工具类(生产级写法)
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;
public class HBaseConnectionUtil {
private static Connection connection;
static {
try {
Configuration config = HBaseConfiguration.create();
// Zookeeper 配置
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort", "2181");
connection = ConnectionFactory.createConnection(config);
} catch (IOException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
return connection;
}
}
为什么 Connection 只建一次?
- Connection 非常昂贵
- 内部维护线程池 + RPC
- 一个 JVM 只建一个

浙公网安备 33010602011771号