HBase之Java客户端

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[42]篇文章,欢迎阅读和收藏】

1基本概念

Hbase 面对不同的编程语言拥有不同的客户端,主要的访问接口如下:

1. Native Java API, 最常规和最高效的访问方式,适合 Hadoop MapReduce Job 并行批处理 HBase 表数据。

2. HBase Shell , HBase 命令行工具,最简单的接口,适合 HBase 管理使用。

3. Thrift Gateway ,利用 Thrift 序列化技术,支持 C++,PHP,Python 等多种语言,适合其它异构系统在线访问 HBase 表数据。

4. REST Gateway ,支持 REST 风格的 http API 访问 HBase ,接触了语言限制。

5. Pig ,可以使用 PigLatin 流式编程语言来操作 HBase 中的数据,和 Hive 类似,本质最终也是编译成 MapReduce Job 来处理 HBase 表数据,适合做数据统计。

6. Hive ,可以使用 SQL 语言来访问 HBase 。

本文主要介绍 Hbase 的 Java 客户端访问。

2术语解释

ZooKeeper :一个分布式的,开放源码的分布式应用程序协调服务,是Google的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Thrift :Apache Thrift 软件框架用于可扩展的跨语言服务开发,简单来说就是 RPC 远程调用,它是一个完整的 RPC 框架体系,结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

Hive :基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。

Pig :由 Yahoo 开发,主要应用于数据分析, Twitter 公司大量使用 Pig 处理海量数据, Pig 之所以是数据分析引擎,是因为 Pig 相当于一个翻译器,将 PigLatin 语句翻译成 MapReduce 程序(只有在执行 dump 和 store 命令时才会翻译成 MapReduce 程序),而 PigLatin 语句是一种用于处理大规模数据的脚本语言。

3详细说明

通过 java 客户端连接 hbase ,其中 hbase 通过 zookeeper 去管理,需要注意的是客户端端口。

通过在浏览器端输入地址查看: http://IP:60010/master-status ,可以看到端口与地址。

配置 Java 客户端访问 Hbase ,操作如下:

1 、在 win 环境下,需要在 C:\Windows\System32\drivers\etc 的 hosts 文件加上一句:IP linuxname 服务器名称

原理:client 要连接虚拟机的 HMaster , HMaster 的端口在虚拟机中 hbase 设置时 60000 , client 首先通过 $:2181 端口和 hbase 通信, hbase 返回 HMaster 所在的机子的 hostname ( hbase 是为集群设置的,对 hosts 很敏感),虚拟机中的 hostname 是 localhost.localdomain, 因此 isa 通过 sn ( ServerName sn )取到 ip 地址,因此需要在 hosts 设置 HMaster 所在的主机 hostname 的 ip ,注意是 hostname

2 、创建新的 eclipse 工程,并导入 jar 包。其中 Jar 包为 Hbase 的 lib 路径下的 Jar 包。将其全部导入新建工程中。

3 、拷贝 hbase 下的 log4j.properties 文件到项目中,在执行过程中可以查看到执行过程中产生的日志。

4 、创建连接 hbase 需要的配置信息, Java 客户端其实就是 shell 客户端的一种实现,操作命令基本上就是shell客户端命令的一个映射。

5 、有了配置信息以后,我们开始通过配置信息连接 hbase ,并实现 hbase 中表的增删改查。

HBaseAdmin 类:是主要进行 DDL 操作相关的一个接口类,主要包括命名空间管理,用户表管理。通过该接口我们可以创建、删除、获取用户表,也可以进行用户表的分割,紧缩等操作。

HTable 类:是 hbase 中的用户表的一个映射的 java 实例,通过该类进行表数据的操作,包括数据的增删改查,也就是在这里我们可以类似 shell 中 put , get 和 sacn 进行数据的操作。

HTableDescriptor 类:是 hbase 用户表的具体描述信息类,一般我们创建表获取表信息,就是通过该类进行的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200127A0074M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券