转载

Java 操作 HBase 教程

一、简介

在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API。我们可以通过 hbase-client 来实现 HBase 数据库的操作。所以,这次主要介绍该组件的基本用法。

在使用 hbase-client 之前,有几个要点需要注意:

  • 客户端需要能访问 Zoopkeeper,再获得 HMaster、RegionServer 实例进行操作

  • 客户端需运行在HBase/Hadoop 集群内,HBase会使用 hostname 来定位节点,因此要求客户端能访问到对应的主机名(或子域名) 如果是远程客户端则需要配置本地的hosts文件。

下面这个图,有助于理解 Client 与 HBase 集群的交互架构:

Java 操作 HBase 教程

下面开始介绍 client 的使用。

二、hbase-client 引入

在 Maven 的 pom.xml 中添加依赖:

这里需要注意的是,客户端版本和 HBase 版本需要保持一致,否则可能会遇到不兼容的问题。

三、连接操作

示例代码:

四、表操作

增删改查方法封装如下:

五、运行测试

最后,我们仍然以上一篇文章中的设备数据作为例子:

  1. 建立 DeviceState 表;

  2. 定义 name/state 两个列簇;

  3. 写入列数据;

  4. 读取列、行,范围读取;

  5. 删除操作

最终实现的代码如下:

执行代码,控制台输出如下:

此时Java Client已经完成制作。

FAQ

A. 提示报错 找不到 winutils 程序

Failed to locate the winutils binary in the hadoop binary path

原因

在Windows下依赖一个 winutils.exe 程序,该程序通过${HADOOP HOME}/bin 来查找。该报错不影响程序执行。

解决办法

需要下载hadoop-commons-master,再配置变量 HADOOP HOME

B. 提示报错,UnknownHostException,无法找到节点..

原因

客户端无法解析HMaster实例节点的主机名 

解决办法

需要编辑 C:/Windows/System32/drivers/etc/hosts 文件,添加对应的映射,如下:

参考文档

官方文档 https://hbase.apache.org/book.html#quickstart Java HBase客户端API https://www.baeldung.com/hbase

欢迎关注"美码师"公众号,笔者是十年老兵一枚,欢迎留言打扰,话题不限于技术、职场或生活..  

"写一首代码,做一手好菜",当技术与美走到一起时,生活也可以是诗和远方

Java 操作 HBase 教程

原文  https://mp.weixin.qq.com/s/jtq4-uygoFE4BJcAaDus1w
正文到此结束
Loading...