iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >hbase 2.0.2 java api怎么用
  • 308
分享到

hbase 2.0.2 java api怎么用

2023-06-02 20:06:44 308人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关HBase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test;import ja

这篇文章将为大家详细讲解有关HBase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

package com.hbase.test;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.Cell;import org.apache.hadoop.hbase.CompareOperator;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Admin;import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.client.Table;import org.apache.hadoop.hbase.client.TableDescriptor;import org.apache.hadoop.hbase.client.TableDescriptorBuilder;import org.apache.hadoop.hbase.filter.ColumnPrefixFilter;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.filter.FilterList.Operator;import org.apache.hadoop.hbase.filter.RegexStrinGComparator;import org.apache.hadoop.hbase.filter.RowFilter;import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;import org.apache.hadoop.hbase.util.Bytes;import org.junit.After;import org.junit.Before;import org.junit.Test;public class HbaseTest {Configuration conf = null;Connection conn = null;@Beforepublic void getConfigAndConnection() {conf = HBaseConfiguration.create();conf.set("hbase.ZooKeeper.quorum", "bigdata01,bigdata02,bigdata03");conf.set("hbase.zookeeper.property.clientPort", "2181");try {conn = ConnectionFactory.createConnection(conf);} catch (IOException e) {e.printStackTrace();}}@Testpublic void createTable() throws IOException {Admin admin = conn.getAdmin();if(!admin.isTableAvailable(TableName.valueOf("test"))) {TableName tableName = TableName.valueOf("test");//表描述器构造器TableDescriptorBuilder  tdb  =TableDescriptorBuilder.newBuilder(tableName)  ;//列族描述起构造器ColumnFamilyDescriptorBuilder cdb =  ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("user"));//获得列描述起ColumnFamilyDescriptor  cfd = cdb.build();//添加列族tdb.setColumnFamily(cfd);//获得表描述器TableDescriptor td = tdb.build();//创建表//admin.addColumnFamily(tableName, cfd); //给标添加列族admin.createTable(td);}//关闭链接}//单条插入@Testpublic void insertOneData() throws IOException {//new 一个列  ,hgs_000为row keyPut put = new Put(Bytes.toBytes("hgs_000"));//下面三个分别为,列族,列名,列值put.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("hgs"));TableName tableName = TableName.valueOf("test");//得到 tableTable table = conn.getTable(tableName);//执行插入table.put(put);}//插入多个列@Testpublic void insertManyData() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));List<Put> puts = new ArrayList<Put>();Put put1 = new Put(Bytes.toBytes("hgs_001"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("wd"));Put put2 = new Put(Bytes.toBytes("hgs_001"));put2.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("age") , Bytes.toBytes("25"));Put put3 = new Put(Bytes.toBytes("hgs_001"));put3.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("60kg"));Put put4 = new Put(Bytes.toBytes("hgs_001"));put4.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("sex") , Bytes.toBytes("男"));puts.add(put1);puts.add(put2);puts.add(put3);puts.add(put4);table.put(puts);table.close();}//同一条数据的插入@Testpublic void singleRowInsert() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Put put1 = new Put(Bytes.toBytes("hgs_005"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("cm"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("age") , Bytes.toBytes("22"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("88kg"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("sex") , Bytes.toBytes("男"));table.put(put1);table.close();}//数据的更新,hbase对数据只有追加,没有更新,但是查询的时候会把最新的数据返回给哦我们@Testpublic void updateData() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Put put1 = new Put(Bytes.toBytes("hgs_002"));put1.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("weight") , Bytes.toBytes("63kg"));table.put(put1);table.close();}//删除数据@Testpublic void deleteData() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));//参数为 row key//删除一列Delete delete1 = new Delete(Bytes.toBytes("hgs_000"));delete1.addColumn(Bytes.toBytes("testfm"), Bytes.toBytes("weight"));//删除多列Delete delete2 = new Delete(Bytes.toBytes("hgs_001"));delete2.addColumns(Bytes.toBytes("testfm"), Bytes.toBytes("age"));delete2.addColumns(Bytes.toBytes("testfm"), Bytes.toBytes("sex"));//删除某一行的列族内容Delete delete3 = new Delete(Bytes.toBytes("hgs_002"));delete3.addFamily(Bytes.toBytes("testfm"));//删除一整行Delete delete4 = new Delete(Bytes.toBytes("hgs_003"));table.delete(delete1);table.delete(delete2);table.delete(delete3);table.delete(delete4);table.close();}//查询//@Testpublic void querySingleRow() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));//获得一行Get get = new Get(Bytes.toBytes("hgs_000"));Result set = table.get(get);Cell[] cells  = set.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}table.close();//Bytes.toInt(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("passWord")))}//全表扫描@Testpublic void scanTable() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Scan scan = new Scan();//scan.addFamily(Bytes.toBytes("info"));//scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("password"));//scan.setStartRow(Bytes.toBytes("wangsf_0"));//scan.setStopRow(Bytes.toBytes("wangwu"));ResultScanner rsacn = table.getScanner(scan);for(Result rs:rsacn) {String rowkey = Bytes.toString(rs.getRow());System.out.println("row key :"+rowkey);Cell[] cells  = rs.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}System.out.println("-----------------------------------------");}}//过滤器@Test//列值过滤器public void singColumnFilter() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Scan scan = new Scan();//下列参数分别为,列族,列名,比较符号,值SingleColumnValueFilter filter =  new SingleColumnValueFilter( Bytes.toBytes("testfm"),  Bytes.toBytes("name"),                 CompareOperator.EQUAL,  Bytes.toBytes("wd")) ;scan.setFilter(filter);ResultScanner scanner = table.getScanner(scan);for(Result rs:scanner) {String rowkey = Bytes.toString(rs.getRow());System.out.println("row key :"+rowkey);Cell[] cells  = rs.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}System.out.println("-----------------------------------------");}}//row key过滤器@Testpublic void rowkeyFilter() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Scan scan = new Scan();RowFilter filter = new RowFilter(CompareOperator.EQUAL,new RegexStringComparator("^hgs_00*"));scan.setFilter(filter);ResultScanner scanner  = table.getScanner(scan);for(Result rs:scanner) {String rowkey = Bytes.toString(rs.getRow());System.out.println("row key :"+rowkey);Cell[] cells  = rs.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}System.out.println("-----------------------------------------");}}//列名前缀过滤器@Testpublic void columnPrefixFilter() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Scan scan = new Scan();ColumnPrefixFilter filter = new ColumnPrefixFilter(Bytes.toBytes("name"));scan.setFilter(filter);ResultScanner scanner  = table.getScanner(scan);for(Result rs:scanner) {String rowkey = Bytes.toString(rs.getRow());System.out.println("row key :"+rowkey);Cell[] cells  = rs.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}System.out.println("-----------------------------------------");}}//过滤器集合@Testpublic void FilterSet() throws IOException {Table table = conn.getTable(TableName.valueOf("test"));Scan scan = new Scan();FilterList list = new FilterList(Operator.MUST_PASS_ALL);SingleColumnValueFilter filter1 =  new SingleColumnValueFilter( Bytes.toBytes("testfm"),  Bytes.toBytes("age"),                CompareOperator.GREATER,  Bytes.toBytes("23")) ;ColumnPrefixFilter filter2 = new ColumnPrefixFilter(Bytes.toBytes("weig"));list.addFilter(filter1);list.addFilter(filter2);scan.setFilter(list);ResultScanner scanner  = table.getScanner(scan);for(Result rs:scanner) {String rowkey = Bytes.toString(rs.getRow());System.out.println("row key :"+rowkey);Cell[] cells  = rs.rawCells();for(Cell cell : cells) {System.out.println(Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())+"::"+                    Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));}System.out.println("-----------------------------------------");}}@Afterpublic void closeConn() throws IOException {conn.close();}}

关于“hbase 2.0.2 java api怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: hbase 2.0.2 java api怎么用

本文链接: https://www.lsjlt.com/news/231304.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • hbase 2.0.2 java api怎么用
    这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test;import ja...
    99+
    2023-06-02
  • jOOQ 2.0.2怎么用
    本篇内容介绍了“jOOQ 2.0.2怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jOOQ 2.0.2 是一个维护版本,整个 JOOQ...
    99+
    2023-06-17
  • hbase访问方式之java api
    Hbase的访问方式Native Java API:最常规和高效的访问方式;HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用;Thrift Gateway:利用Thrift序列化技术,支持C++,PHP,...
    99+
    2023-05-31
    hbase java api
  • HBase内置过滤器java api的知识点总结
    这篇文章主要介绍“HBase内置过滤器java api的知识点总结”,在日常操作中,相信很多人在HBase内置过滤器java api的知识点总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase内置过滤...
    99+
    2023-06-19
  • IDEA远程连接HBase及其Java API实战详解
    开放端口 安全组没开放端口是原罪!!!导致好多BUG费时费力。Hbase悄悄咪咪的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症。 Hbase安装 下载压缩包...
    99+
    2024-04-02
  • 解决Java API不能远程访问HBase的问题
    目录Java API不能远程访问HBase配置Linux的hostname配置Linux的hosts配置访问windows的hosts最后附上Java代码示例Java AP...
    99+
    2024-04-02
  • spark与hbase怎么用
    小编给大家分享一下spark与hbase怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!package hgs.spark.hbaseimport org.apache.spark.SparkCon...
    99+
    2023-06-02
  • Java怎么调用ElasticSearch API
    本篇内容介绍了“Java怎么调用ElasticSearch API”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java操作es有...
    99+
    2023-07-05
  • java怎么调用windows api
    要调用Windows API,可以使用Java的JNI(Java Native Interface)来实现。以下是一些基本步骤:1....
    99+
    2023-10-18
    java
  • Java中的API怎么使用
    这篇“Java中的API怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中的API怎么使用”文章吧。1.API...
    99+
    2023-06-29
  • Java Json API中Gson怎么用
    这篇文章主要介绍了Java Json API中Gson怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。GSON是Google开发的Java API,用于转换Java对象和...
    99+
    2023-06-17
  • HBase怎么确保高可用
    HBase怎么确保高可用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HBase是一个基于Hadoop面向列的非关系型分布式数据库(NoS...
    99+
    2024-04-02
  • Java中怎么利用HBase实现客户端编程
    这篇文章将为大家详细讲解有关Java中怎么利用HBase实现客户端编程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 准备工作下载后安装jdk包(这里使用的是jdk-6u10-rc2-b...
    99+
    2023-06-17
  • 怎么使用docker部署hbase
    这篇文章将为大家详细讲解有关怎么使用docker部署hbase,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装docker先输入docker -v,装过就不用再装了。yum update&nb...
    99+
    2023-06-14
  • 怎么进行Java API
    这期内容当中小编将会给大家带来有关怎么进行Java API,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java API是应用编程接口,是一种规范,指明编写应用程序的程序员应如何访问类和的行为和状态;Ja...
    99+
    2023-06-17
  • Spark怎么写HBASE
    这篇文章将为大家详细讲解有关Spark怎么写HBASE,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.iesol.high_frequencyimport java.io.Buffe...
    99+
    2023-06-03
  • hbase中count命令怎么使用
    在HBase中,可以使用scan命令来统计行数。下面是使用count命令的示例: 在HBase shell中,输入以下命令以选择...
    99+
    2023-10-28
    hbase
  • phoenix怎么连接hbase
    这篇“phoenix怎么连接hbase”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“phoenix怎么连接hbase”文章吧...
    99+
    2023-07-04
  • 怎么用Spark读取HBASE数据
    这篇文章主要讲解了“怎么用Spark读取HBASE数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Spark读取HBASE数据”吧! ...
    99+
    2024-04-02
  • HBASE怎么定位行
    这篇文章主要讲解了“HBASE怎么定位行”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HBASE怎么定位行”吧!HBASE通过Rowkey可以直接定位行,速度很快,在filter中,有2个A...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作