在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。
那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。
所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API。 我们可以通过 hbase-client 来实现 HBase 数据库的操作。
所以,这次主要介绍该组件的基本用法。
在使用 hbase-client 之前,有几个要点需要注意:
- 客户端需要能访问 Zoopkeeper,再获得 HMaster、RegionServer 实例进行操作
- 客户端需运行在HBase/Hadoop 集群内,HBase会使用 hostname 来定位节点,因此要求客户端能访问到对应的主机名(或子域名)
如果是远程客户端则需要配置本地的hosts文件。
下面这个图,有助于理解 Client 与 HBase 集群的交互架构:
下面开始介绍 client 的使用。
在 Maven 的 pom.xml 中添加依赖:
这里需要注意的是,客户端版本和 HBase 版本需要保持一致,否则可能会遇到不兼容的问题。
示例代码:
增删改查方法封装如下:
最后,我们仍然以上一篇文章中的设备数据作为例子:
- 建立 DeviceState 表;
- 定义 name/state 两个列簇;
- 写入列数据;
- 读取列、行,范围读取;
- 删除操作
最终实现的代码如下:
执行代码,控制台输出如下:
此时Java Client已经完成制作。
- 提示报错 找不到winutils程序
Failed to locate the winutils binary in the hadoop binary path
原因是在Windows下依赖一个winutils.exe程序,该程序通过${HADOOP_HOME}/bin 来查找。
该报错不影响程序执行,但如果要规避问题,需要下载hadoop-commons-master,再配置变量HADOOP_HOME
可参考地址:https://blog.csdn.net/ycf/article/details/
- 提示报错,UnknownHostException,无法找到节点..
原因是客户端无法解析HMaster实例节点的主机名
需要编辑 C:WindowsSystem32driversetchosts 文件,添加对应的映射,如下:
官方文档
https://hbase.apache.org/book.html#quickstart
Java HBase客户端API
https://www.baeldung.com/hbase
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/17962.html