IDEA新建项目,引入POM文件

        <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.6</version></dependency>

新建配置文件

package com.zzj.config;import lombok.extern.slf4j.Slf4j;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;import java.io.IOException;@Slf4j
public final class HbaseConfig {private Admin admin;private Configuration configuration;private HBaseConfiguration hBaseConfiguration;private String zkUrl = "axe1:2181,axe2:2181,axe3:2181";private Connection connection;public HbaseConfig()  {configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum",zkUrl);//configuration.addResource(""); 可以使用hbase-site.xml代替,xml中含有具体的配置文件try {connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();} catch (Exception e) {e.printStackTrace();}}public Admin getAdmin() {return admin;}
}

新建JavaTest

import com.zzj.config.HbaseConfig;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Test;import java.util.List;
import java.util.Random;public class CrudTest {@Testpublic void create() throws Exception {HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();boolean exists = ((HBaseAdmin) admin).tableExists("test");System.out.println(String.valueOf(exists));exists = ((HBaseAdmin) admin).tableExists("test444");System.out.println(String.valueOf(exists));TableName name = TableName.valueOf("wdnmd");HTableDescriptor table = new HTableDescriptor(name);HColumnDescriptor c1 = new HColumnDescriptor("c1");HColumnDescriptor c2 = new HColumnDescriptor("c2");HColumnDescriptor c3 = new HColumnDescriptor("c3");exists = ((HBaseAdmin) admin).tableExists("wdnmd");if(exists){System.out.println(String.valueOf(exists));admin.addColumn(name,c1);}else{table.addFamily(c2);table.addFamily(c3);admin.createTable(table);}}@Testpublic void listTables() throws Exception {HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();TableName[] tableNames = admin.listTableNames();for(TableName name:tableNames){System.out.println(name.getNameAsString());}}@Testpublic void insert() throws Exception{HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();Configuration configuration = admin.getConfiguration();Connection connection = admin.getConnection();Table table = connection.getTable(TableName.valueOf("test1"));HTableDescriptor tableDescriptor = table.getTableDescriptor();HColumnDescriptor[] hColumnDescriptors = tableDescriptor.getColumnFamilies();Put put = new Put(Bytes.toBytes("row1"));for(HColumnDescriptor column:hColumnDescriptors){if("c3".equals(column.getNameAsString())){}}
//        put.addColumn("c2".getBytes(),"srgdr".getBytes(),"wrtrg".getBytes());
//        put.addColumn("c3".getBytes(),"dsdgg".getBytes(),"阿桑的歌".getBytes());
//        put.addColumn("c3".getBytes(),"wocaole".getBytes(),"dajiba".getBytes());put.addColumn("f1".getBytes(),"f1_column".getBytes(),"f1_value".getBytes());table.put(put);table.close();}@Testpublic void getColum() throws Exception {//相当于关系数据库中的k-v查询中,根据key查询value,此处hbase的key时多个key合并的,key=rowKey+columnKey+qualifierKey,新增时,亦是如此System.out.println("111111111111");Get get = new Get(Bytes.toBytes("row1"));//此处指定了特定的column和qualifier,在下面的result中 只查询出指定的结果,如果此处不指定column则会查询出第一个结果//get.addColumn("f1".getBytes(),"srgdr".getBytes());HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();Connection connection = admin.getConnection();Table table = connection.getTable(TableName.valueOf("test1"));Result result = table.get(get);String f = Bytes.toString(result.getRow());String vl = Bytes.toString(result.value());List<Cell> cells =  result.getColumnCells("f1".getBytes(),"f1_qua".getBytes());for(Cell cell : cells){String family = Bytes.toString(CellUtil.cloneFamily(cell));String qualifier = Bytes.toString(CellUtil.cloneQualifier(cell));String value = Bytes.toString(CellUtil.cloneValue(cell));}System.out.println(f);System.out.println(vl);}@Testpublic void delete() throws Exception{Delete delete = new Delete(Bytes.toBytes("542131"));HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();Connection connection = admin.getConnection();Table table = connection.getTable(TableName.valueOf("wdnmd"));//table.delete(delete);//整个row全部删除delete.addColumn("c2".getBytes(),"srgdr".getBytes());//删除指定的columntable.delete(delete);}@Testpublic void scanner() throws Exception{HbaseConfig hbaseConfig = new HbaseConfig();Admin admin = hbaseConfig.getAdmin();Connection connection = admin.getConnection();Table table = connection.getTable(TableName.valueOf("scannerTable"));Scan scan = new Scan();ResultScanner results = table.getScanner(scan);//没有条件的时候是全表扫描for(Result result:results){
//            List<Cell> cells =  result.getColumnCells("f1".getBytes(),"f1_qua".getBytes());List<Cell> cells =  result.listCells();for(Cell cell : cells){String family = Bytes.toString(CellUtil.cloneFamily(cell));String qualifier = Bytes.toString(CellUtil.cloneQualifier(cell));String value = Bytes.toString(CellUtil.cloneValue(cell));//System.out.println(family+"  "+qualifier +" " +value);}}for(int i=0;i<100;i++){String rowName = String.valueOf(System.currentTimeMillis());Put put = new Put(Bytes.toBytes(rowName));put.addColumn("testFamily".getBytes(),("f_"+rowName).getBytes(),(rowName+ new Random(1000).nextInt()).getBytes());//table.put(put);}table.close();scan = new Scan();scan.setStartRow("1558340047343".getBytes());scan.setStopRow ("1558340207922".getBytes());table.getScanner(scan);results = table.getScanner(scan);int co =0 ;for(Result result:results){List<Cell> cells =  result.listCells();for(Cell cell : cells){String family = Bytes.toString(CellUtil.cloneFamily(cell));String qualifier = Bytes.toString(CellUtil.cloneQualifier(cell));String value = Bytes.toString(CellUtil.cloneValue(cell));System.out.println(++co);System.out.println(family+"  "+qualifier +" " +value);}}}}

HBase基本操作:JAVA API操作相关推荐

  1. HBase基本操作-java api

    上次将了HBase搭建完成后,一些Shell的使用,现在我们将了解一下HBase的代码控制,我使用的是java8以及hbase2.1.1版本 首先你的集群已经是搭建完成了,然后这次我使用的是IDEA, ...

  2. 简单hbase java,Hbase 简单java API 操作

    package utils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName ...

  3. 使用 Java API 操作 HBase

    使用 Java API 操作 HBase 数据库,就类似HBase Shell,本质上一个是Java 代码,一个是Shell 命令.(hadoop 的文件系统莫不如此,可用Java API 的方式操作 ...

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

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

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

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

  6. 5 hbase-shell + hbase的java api

    本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装  .HBase的伪分布模式(1节点)的启动    .HBase ...

  7. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

    大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...

  8. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作...

    一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 ...

  9. Hbase高手之路 -- 第五章 -- HBase的Java API编程

    Hbase高手之路 – 第五章 – HBase的Java API编程 一. 需求与数据集 某自来水公司,需要存储大量的缴费明细数据,以下截取了缴费明细的一部分内容: 因为缴费明细的数据记录非常庞大,该 ...

  10. MongoDB Java API操作很全的整理以及共享分片模式下的常见操作整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

最新文章

  1. 建站四部曲之前端显示篇(React+上线)
  2. python实现可扩容队列
  3. 02241107班编程题 切片逆序大小写等
  4. oxm java_使用JAXB2.0实现OXM
  5. Python学习week4-set集合
  6. Nagios 监控 SNMP 温度计
  7. SharePoint 常用操作杂谈
  8. Python Tricks(十八) —— range
  9. Openwrt 路由器挂载摄像头教程
  10. 北大人工智能前沿讲座--第二讲 嵌入式人工智能
  11. 命令提示符命令(cmd)
  12. 爬取新型冠状病毒的历史数据
  13. 计算机不能连接网络适配器,网络适配器显示未连接的解决方法图文教程
  14. eclipse Strut2环境搭建
  15. 《AlignedReID: Surpassing Human-Level Performance in Person Re-Identification》论文解读
  16. 非系统APK很多权限受限制,如何让APK成为系统APK
  17. 实战ATTCK攻击链路--靶场Writeup(三)
  18. android桌面动画
  19. 浅谈SQL Server逻辑读、物理读、预读
  20. (毕业设计资料)基于单片机GPS轨迹定位和里程统计系统

热门文章

  1. revit2016与2017区别_revit2017下载及新功能介绍
  2. Hive数据分析案例——汽车销售数据分析
  3. 文件加密系统,随时保护终端数据安全
  4. LabVIEW 读写和缩放音频文件
  5. win10修改命令行默认字体
  6. aide制作软件教程_Aide教程
  7. 网页版QQ、MSN等等聊天工具web版大全
  8. 菜鸟教程学习JAVA 01
  9. 微信小程序,标签云效果:自定义颜色,并随机显示不同颜色
  10. java case 语句_Java switch case 语句