hbase 2.0.2 java api怎么用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test
千家信息网最后更新 2025年12月02日hbase 2.0.2 java api怎么用
这篇文章将为大家详细讲解有关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; @Before public 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(); } } @Test public 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); } //关闭链接 } //单条插入 @Test public void insertOneData() throws IOException { //new 一个列 ,hgs_000为row key Put put = new Put(Bytes.toBytes("hgs_000")); //下面三个分别为,列族,列名,列值 put.addColumn(Bytes.toBytes("testfm"),Bytes.toBytes("name") , Bytes.toBytes("hgs")); TableName tableName = TableName.valueOf("test"); //得到 table Table table = conn.getTable(tableName); //执行插入 table.put(put); } //插入多个列 @Test public void insertManyData() throws IOException { Table table = conn.getTable(TableName.valueOf("test")); List puts = new ArrayList(); 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();} //同一条数据的插入 @Test public 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对数据只有追加,没有更新,但是查询的时候会把最新的数据返回给哦我们 @Test public 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(); } //删除数据 @Test public 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(); } //查询 // @Test public 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"))) } //全表扫描 @Test public 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过滤器 @Test public 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("-----------------------------------------"); } } //列名前缀过滤器 @Test public 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("-----------------------------------------"); } } //过滤器集合 @Test public 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("-----------------------------------------"); } } @After public void closeConn() throws IOException { conn.close(); }} 关于"hbase 2.0.2 java api怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
数据
过滤器
篇文章
一行
内容
参数
更多
别为
构造器
更新
查询
不错
实用
三个
前缀
只有
多个
文章
时候
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
梦幻网络技术
爱如生数据库如何注册
服务器ip访问网站
全拼下载软件开发
泰州市网络安全宣传周
郑州电脑软件开发哪家实惠
正规软件开发哪家便宜
广州手游棋牌软件开发
关于精神科护理安全数据库
网络安全手抄报8k纸四年级
沧州廊坊hr系统网络技术
学网络技术和软件技术哪个学校好
实例说明网络技术的应用
四年级网络安全手抄报简单模板
桂电网络安全导师推荐
湖北培养网络安全人才的优势
数据库tri
网络技术三级四级一起考
网络安全法草案争议
阿里云服务器ssl
卓越软件开发工具
网络安全有哪一年实施的
网络安全工程师ccie
苏州租房子软件开发
信息系软件开发新手入门
苹果电脑系统找不到服务器
2020年专业技术网络安全
bim数据库的好处
战争雷霆用户服务器不可用
科技 软件开发 公司简介