hbase 2.0.2 java api怎么用
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test
千家信息网最后更新 2025年02月04日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")); Listputs = 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安全错误
数据库的锁怎样保障安全
服务器独立防护案例
力控怎么和sql数据库连接
2021祥云杯网络安全大赛
计算机机房服务器管理制度
服务器2012共享资料权限
软件开发的简称是什么
成都服务器总代
达梦数据库查询所有模式和表名称
第46届湖北省网络安全集训队
电视明明有网却连不到服务器
软件开发wbs
软件开发 免费简历模板
吉林农业大学学生网络安全守则
数据库系统最重要的文件
数据库undo文件有问题
不沉迷手机网络安全教育讲稿
与国家经济发展有关的数据库
nosql数据库设计工具
数据库原理排序怎么实现
服务器机柜过滤器直销
怎么查看服务器操作系统
考研软件开发国家线
中兴c 软件开发笔试题
linux搭载家庭服务器
网络安全心得200
李大帅斗罗大陆服务器群号
北京惠普服务器虚拟化定制
山东影艺网络技术有限公司
数据库安全管理实训作业答案
数据库设计的六个阶段的主要工作