Hbase中有哪些常用的数据库操作类
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章将为大家详细讲解有关Hbase中有哪些常用的数据库操作类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。pom.xml中引用hbase-clie
千家信息网最后更新 2024年11月11日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; } Listres=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安全错误
数据库的锁怎样保障安全
网络技术有限公司招聘信息
c 调用wps表格数据库
公安网络安全管理发言稿
网络技术实习报告表
四川超聚变服务器总代理
新余高性价比服务器哪家公司好
宣化区网络安全教育日
vb修改数据库中的字段
新一代软件开发价格服务标准
庭瑞网络技术有限公司招聘
数据库还原到本地
加强进一步网络安全通知
诚信网络技术工作室
路考中心网络技术员工作咋样
江苏时代网络技术分类创新服务
软件开发和劳务服务税率多少
惠州oa软件开发费用是多少
网络安全顶层法律法规有哪些
校园网络安全类型是什么
绍兴市越瑞网络技术服务部
c 调用wps表格数据库
网络安全法 网络安全
非法获取苹果公司数据库
服务器显示时间
英雄联盟手游服务器是不是爆炸了
杭州企业软件开发需要学什么
石嘴山网络技术产品介绍
软件开发和ui设计
服务器内部报错
一台服务器多个站点