使用 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相关推荐

  1. 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 ...

  2. Java Api 操作 Hbase

    文章目录 1.需求 2.思路 2.1 建立远程Hbase集群连接 -- HbaseInit.java 2.2 创建表结构--CreateTable.java 2.3 插入数据 -- PutRow.ja ...

  3. Hbase java API操作(模板代码)

    Hbase java API操作 1 创建maven工程 导入jar包 <repositories><repository><id>cloudera</id& ...

  4. Hbase 完全分布式模式的搭建、命令行操作、Java API操作

    追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 Hbase 完全分布式模式的搭建 一.下载安装包,解压到合适位置: 二.配置相关的文件: 三.将Hbase复制到其他 ...

  5. 6 HBase java API访问HBase数据库

    HBase java API访问HBase数据库 package com.hunan.hbase_options;import org.apache.hadoop.conf.Configuration ...

  6. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作

    目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...

  7. Kafka系列三 java API操作

    使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  8. Hadoop详解(四):HDFS shell操作和Java API操作

    1. HDFS环境准备 1.1 HDFS的格式化与启动 HDFS配置完之后就可以对其进行格式化操作.在NameNode所在机器上执行如下命令进行HDFS的格式化操作: hadoop namenode ...

  9. Windows下使用Java API操作HDFS的常用方法

    场景 Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...

最新文章

  1. android播放器:mediaplayer
  2. Java Web学习(二)数据加密
  3. [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位?
  4. 中本聪主题系列NFT收藏品在OpenSea发售,于26秒内售罄
  5. Yam Finance提案建议将YAM DAO资金库中dApp挖矿奖励的80%转移到uGAS流动性挖矿
  6. 【前端基础】DOM对象
  7. Android异步批量下载图片并缓存
  8. the basic concepts of c#
  9. sql server express 2005下载地址
  10. 从零开始的FPGA学习(2)(用三八译码器实现一位全加器)
  11. 二级倒立摆的建模、线性化S函数的PID控制以及非线性化S函数的PID控制
  12. mediawiki 各种扩展整理
  13. 将计算机设置成交换机主机名,交换机配置基本使用命令解析
  14. java源码——计算立体图形的表面积和体积
  15. 【java】根据当前时区获取时间
  16. Java7 的Random伪随机数和线程安全的ThreadLocalRandom
  17. 实例化方式的比较 Activator和new
  18. Visual Studio Code底部状态栏的隐藏及复原
  19. vba和宏_保留有关Excel公式和宏的注释
  20. 【数据读写】csv文件与xls/xlsx文件

热门文章

  1. 详解:离线项目二 每个区域下最受欢迎的产品TOPN
  2. 后台权限html,cms后台权限架构.html
  3. 计算机上怎么带源地址ping,怎么带源地址去ping服务器
  4. TensorFlow精进之路(一):Softmax回归模型训练MNIST
  5. open cv+C++错误及经验总结(十)
  6. SCI从入门到精髓(三)——如何写出牛文章
  7. 支持向量机c++实现
  8. [UVA-1218] Perfect Service(树的最小支配集)
  9. 可能比文档还详细--VueRouter完全指北
  10. 2017年值得学习的3个CSS特性