Hbase中有哪些常用的数据库操作类
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关Hbase中有哪些常用的数据库操作类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。pom.xml中引用hbase-clie
千家信息网最后更新 2025年12月03日Hbase中有哪些常用的数据库操作类
这篇文章将为大家详细讲解有关Hbase中有哪些常用的数据库操作类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
pom.xml中引用hbase-client
org.apache.hbase hbase-client 2.2.5
HBaseConn.java获取hbase链接
package com.rumenz;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.Table;import java.io.IOException;public class HBaseConn { private static final HBaseConn INSTANCE=new HBaseConn(); private static Configuration configuration; private static Connection connection; private HBaseConn(){ try{ if(configuration==null){ configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum", "192.168.82.177:2181"); } }catch (Exception e){ e.printStackTrace(); } } private Connection getConnection(){ if(connection==null||connection.isClosed()){ try{ connection=ConnectionFactory.createConnection(configuration); }catch(Exception e){ e.printStackTrace(); } } return connection; } public static Connection getHbaseConn(){ return INSTANCE.getConnection(); } public static Table getTable(String table) throws IOException { return INSTANCE.getConnection().getTable(TableName.valueOf(table)); } public static void closeConn(){ if(connection!=null){ try{ connection.close(); }catch(Exception e){ e.printStackTrace(); } } }}HBaseUtil.java数据库增删改查操作
package com.rumenz;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class HBaseUtil { /** * 创建一个表 * @param tableName 表名 * @param cf 列族名 * @return * @throws IOException */ public static boolean createTable(String tableName,String[] cf) throws IOException { try(HBaseAdmin admin = (HBaseAdmin) HBaseConn.getHbaseConn().getAdmin()){ if(admin.tableExists(TableName.valueOf(tableName))){ return false; } List res=new ArrayList<>(); Arrays.stream(cf).forEach(cff->{ res.add(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(cff)).build()); }); TableDescriptor hTableDescriptor= TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName)).setColumnFamilies(res).build(); admin.createTable(hTableDescriptor); }catch(Exception e){ e.printStackTrace(); } return true; } /** * 删除一个表 * @param tableName 表名 * @return */ public static boolean deleteTable(String tableName){ try(HBaseAdmin admin= (HBaseAdmin) HBaseConn.getHbaseConn().getAdmin()){ admin.disableTable(TableName.valueOf(tableName)); admin.deleteTable(TableName.valueOf(tableName)); }catch(Exception e){ e.printStackTrace(); } return true; } /** * 插入一条数据 * @param tableName 表名 * @param rowkey 主键 * @param cfName 列族 * @param qualifier 列名 * @param data 数据 * @return */ public static boolean putRow(String tableName,String rowkey,String cfName,String qualifier,String data){ try(Table table= HBaseConn.getTable(tableName)){ Put put=new Put(Bytes.toBytes(rowkey)); put.addColumn(Bytes.toBytes(cfName), Bytes.toBytes(qualifier), Bytes.toBytes(data)); table.put(put); }catch (Exception e){ e.printStackTrace(); } return true; } /** * 批量添加数据 * @param tableName 表名 * @param puts 数据列表 * @return */ public static boolean putRows(String tableName,List puts){ try(Table table= HBaseConn.getTable(tableName)){ table.put(puts); }catch (Exception e){ e.printStackTrace(); } return true; } /** * 通过rowkey查询数据 * @param tableName 表名 * @param rowkey rowkey * @return * @throws IOException */ public static Result getRow(String tableName,String rowkey) throws IOException { try(Table table=HBaseConn.getTable(tableName)){ Get get=new Get(Bytes.toBytes(rowkey)); return table.get(get); }catch (Exception e){ e.printStackTrace(); } return null; } /** * 通过scan 查询数据 * @param tableName 表名 * @param startRow 开始的row * @param endRow 结束的row * @return */ public static ResultScanner getScanner(String tableName,String startRow,String endRow){ try(Table table=HBaseConn.getTable(tableName)){ Scan scan=new Scan(); scan.withStartRow(Bytes.toBytes(startRow)); scan.withStopRow(Bytes.toBytes(endRow)); scan.setCaching(1000); return table.getScanner(scan); }catch (Exception e){ e.printStackTrace(); } return null; } /** * 通过过滤器查询数据 * @param tableName 表名 * @param startRow 开始 * @param endRow 结束 * @param flist 过滤器 * @return */ public static ResultScanner getScanner(String tableName, String startRow, String endRow, FilterList flist){ try(Table table=HBaseConn.getTable(tableName)){ Scan scan=new Scan(); scan.withStartRow(Bytes.toBytes(startRow)); scan.withStopRow(Bytes.toBytes(endRow)); scan.setFilter(flist); scan.setCaching(1000); return table.getScanner(scan); }catch (Exception e){ e.printStackTrace(); } return null; } /** * 通过rowkey删除数据 * @param tableName 表名 * @param rowKey rowkey * @return */ public static boolean deleteRow(String tableName,String rowKey){ try(Table table=HBaseConn.getTable(tableName)){ Delete delete=new Delete(Bytes.toBytes(rowKey)); table.delete(delete); }catch (Exception e){ e.printStackTrace(); } return true; } /** * 删除列族 * @param tableName 表名 * @param cfName 列族 * @return */ public static boolean deleteColumnFamily(String tableName,String cfName){ try(HBaseAdmin admin= (HBaseAdmin) HBaseConn.getHbaseConn().getAdmin()){ admin.deleteColumnFamily(TableName.valueOf(tableName),Bytes.toBytes(cfName)); }catch (Exception e){ e.printStackTrace(); } return true; } /** * 删除列名 * @param tableName 表名 * @param rowKey rowkey * @param cfName 列族 * @param qualifier 列名 * @return */ public static boolean deleteQualifier(String tableName,String rowKey,String cfName,String qualifier){ try(Table table=HBaseConn.getTable(tableName)){ Delete delete=new Delete(Bytes.toBytes(rowKey)); delete.addColumn(Bytes.toBytes(cfName), Bytes.toBytes(qualifier)); table.delete(delete); }catch (Exception e){ e.printStackTrace(); } return true; }} 关于Hbase中有哪些常用的数据库操作类就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
数据库
查询
常用
内容
文章
更多
知识
篇文章
过滤器
不错
质量
链接
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
高并发接口数据库
苏州网络安全事件
网络安全论文模板画画
网络技术与设计专业排名
阿里巴巴网络安全主席
快餐店数据库设计
seer数据库结构
计算机考试 数据库技术
服务器绑定数据的对象有哪些
网络安全知识主题班会总结
物质焓变数据库
网络技术兼职有哪些
qeek软件开发团队
山东佳宏网络技术有限公司
你对网络安全重要性的认识
服务器 防御
服务器安全策略怎么取消
网络安全法第38条明确规定
征文网络安全教育体会
服务器后置硬盘灯
倩女手游最新服务器
昂捷数据库表
电气绘图软件数据库
软件开发涉及文档
预测模型 软件开发
数据库封锁 理解
网络安全法律体系构成
河南专业软件开发服务价钱
云服务器es
惠普服务器配远控