使用 Java API 操作 HBase
使用 Java API 操作 HBase 数据库,就类似HBase Shell,本质上一个是Java 代码,一个是Shell 命令。(hadoop 的文件系统莫不如此,可用Java API 的方式操作hdfs,也可用shell 命令)。
在hbase 操作 一文我们介绍了使用命令行(HBase shell)的方式操作hbase,如果 Java 也可操作MySQL一样,本文我们着重介绍如何使用 Java API 操作 HBase。
hadoop hbase API 提供了两个核心的 API 用以操作hbase 数据库:
HBaseAdmin:
- 创建表:create
- 删除表:disable、drop
HTable:
- 插入记录:put
- 删除记录:delete、deleteall
- 遍历所有记录:scan
public class Test {private static final String TABLE_NAME = "students";private static final String FAMILY_1 = "stu_id";private static final String FAMILY_2 = "addr";private static final String FAMILY_3 = "info";public static void main(String[] args) throws Exception {Configuration conf = HBaseConfiguration.create();conf.set("hbase.rootdir", "hdfs://hadoop0:hbase/");conf.set("hbase.zookeeper.quorum", "hadoop0");HBaseAdmin admin = new HBaseAdmin(conf);if (!admin.tableExists(TABLE_NAME)){HTableDescriptor desc = new HTableDescriptor(TABLE_NAME);desc.addFamily(new HColumnDescriptor(FAMILY_1));desc.addFamily(new HColumnDescriptor(FAMILY_2));desc.addFamily(new HColumnDescriptor(FAMILY_3));admin.createTable(desc);// 等价于 hbase shell 中的:// create 'students', 'stu_id', 'addr', 'info'}HTable table = new HTable(conf, TABLE_NAME);Put put = new Put("xiaoming".getBytes());put.add(FAMILY_3.getBytes(), "age".getBytes(), "24".getBytes());// 一个 add 表示插入一个记录// put 'students', 'xiaoming', 'info:age', "24"put.add(FAMILY_3.getBytes(), "birthday".getBytes(), "1987-06-17".getBytes());put.add(FAMILY_3.getBytes(), "company".getBytes(), "alibba".getBytes());put.add(FAMILY_2.getBytes(), "contry".getBytes(), "china".getBytes());put.add(FAMILY_2.getBytes(), "province".getBytes(), "zhejiang".getBytes());put.add(FAMILY_2.getBytes(), "city".getBytes(), "hangzhou".getBytes());table.put(put);put = new Put("zhangyifei".getBytes());put.add(FAMILY_3.getBytes(), "birthday".getBytes(), "1987-04-17".getBytes());put.add(FAMILY_2.getBytes(), "city".getBytes(), "jieyang".getBytes());table.put(put);// 查询// get 'students', 'xiaoming', 'info:company'Get get = new Get("xiaoming".getBytes());Result result = table.get(get); // 得到的是整条记录System.out.println(new String(result.getValue(FAMILY_3.getBytes(), "company".getBytes())));
// System.out.println(result);// 查询全部信息,scan 'students'Scan scan = new Scan();ResultScanner scanner = table.getScanner(scan);for (Result res : scanner) {System.out.println(res);}table.close();}
}
使用 Java API 操作 HBase相关推荐
- HBase 6、用Phoenix Java api操作HBase
开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...
- Java Api 操作 Hbase
文章目录 1.需求 2.思路 2.1 建立远程Hbase集群连接 -- HbaseInit.java 2.2 创建表结构--CreateTable.java 2.3 插入数据 -- PutRow.ja ...
- Hbase java API操作(模板代码)
Hbase java API操作 1 创建maven工程 导入jar包 <repositories><repository><id>cloudera</id& ...
- Hbase 完全分布式模式的搭建、命令行操作、Java API操作
追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 Hbase 完全分布式模式的搭建 一.下载安装包,解压到合适位置: 二.配置相关的文件: 三.将Hbase复制到其他 ...
- 6 HBase java API访问HBase数据库
HBase java API访问HBase数据库 package com.hunan.hbase_options;import org.apache.hadoop.conf.Configuration ...
- 2021年大数据ZooKeeper(五):ZooKeeper Java API操作
目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...
- Kafka系列三 java API操作
使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- Hadoop详解(四):HDFS shell操作和Java API操作
1. HDFS环境准备 1.1 HDFS的格式化与启动 HDFS配置完之后就可以对其进行格式化操作.在NameNode所在机器上执行如下命令进行HDFS的格式化操作: hadoop namenode ...
- Windows下使用Java API操作HDFS的常用方法
场景 Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...
最新文章
- android播放器:mediaplayer
- Java Web学习(二)数据加密
- [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位?
- 中本聪主题系列NFT收藏品在OpenSea发售,于26秒内售罄
- Yam Finance提案建议将YAM DAO资金库中dApp挖矿奖励的80%转移到uGAS流动性挖矿
- 【前端基础】DOM对象
- Android异步批量下载图片并缓存
- the basic concepts of c#
- sql server express 2005下载地址
- 从零开始的FPGA学习(2)(用三八译码器实现一位全加器)
- 二级倒立摆的建模、线性化S函数的PID控制以及非线性化S函数的PID控制
- mediawiki 各种扩展整理
- 将计算机设置成交换机主机名,交换机配置基本使用命令解析
- java源码——计算立体图形的表面积和体积
- 【java】根据当前时区获取时间
- Java7 的Random伪随机数和线程安全的ThreadLocalRandom
- 实例化方式的比较 Activator和new
- Visual Studio Code底部状态栏的隐藏及复原
- vba和宏_保留有关Excel公式和宏的注释
- 【数据读写】csv文件与xls/xlsx文件
热门文章
- 详解:离线项目二 每个区域下最受欢迎的产品TOPN
- 后台权限html,cms后台权限架构.html
- 计算机上怎么带源地址ping,怎么带源地址去ping服务器
- TensorFlow精进之路(一):Softmax回归模型训练MNIST
- open cv+C++错误及经验总结(十)
- SCI从入门到精髓(三)——如何写出牛文章
- 支持向量机c++实现
- [UVA-1218] Perfect Service(树的最小支配集)
- 可能比文档还详细--VueRouter完全指北
- 2017年值得学习的3个CSS特性