Hbase的测试代码是怎样的
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"Hbase的测试代码是怎样的",在日常操作中,相信很多人在Hbase的测试代码是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Hbase的测试代
千家信息网最后更新 2025年12月02日Hbase的测试代码是怎样的
这篇文章主要介绍"Hbase的测试代码是怎样的",在日常操作中,相信很多人在Hbase的测试代码是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Hbase的测试代码是怎样的"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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.CellUtil;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.MasterNotRunningException;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.ZooKeeperConnectionException;import org.apache.hadoop.hbase.client.Admin;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.filter.CompareFilter.CompareOp;import org.apache.hadoop.hbase.filter.Filter;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;import org.apache.hadoop.hbase.util.Bytes;public class HBaseTest { public static Configuration configuration; public static Connection conn = null; static { configuration = HBaseConfiguration.create(); configuration.set("hbase.zookeeper.property.clientPort", "2181");// configuration.set("hbase.zookeeper.quorum", "bfct163");// configuration.set("hbase.master", "bfct162:60000"); configuration.set("hbase.zookeeper.quorum", "192.168.17.163"); configuration.set("hbase.master", "192.168.17.162:60000"); try { conn = ConnectionFactory.createConnection(configuration); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) {// createTable("wujintao");// insertData("wujintao"); QueryAll("wujintao");// QueryByCondition1("wujintao");// QueryByCondition2("wujintao");// QueryByCondition3("wujintao");// deleteRow("wujintao","112233bbbcccc");// deleteByCondition("wujintao","abcdef"); // dropTable("wujintao"); } /** * 创建表 * * @param tableName */ public static void createTable(String tableName) { System.out.println("start create table ......"); try { TableName TABLE = TableName.valueOf(tableName); Admin hBaseAdmin = conn.getAdmin(); if (hBaseAdmin.tableExists(TABLE)) {// 如果存在要创建的表,那么先删除,再创建 hBaseAdmin.disableTable(TABLE); hBaseAdmin.deleteTable(TABLE); System.out.println(tableName + " is exist,detele...."); } HTableDescriptor tableDescriptor = new HTableDescriptor(TABLE); tableDescriptor.addFamily(new HColumnDescriptor("column1")); tableDescriptor.addFamily(new HColumnDescriptor("column2")); tableDescriptor.addFamily(new HColumnDescriptor("column3")); hBaseAdmin.createTable(tableDescriptor); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("end create table ......"); } /** * 插入数据 * * @param tableName */ public static void insertData(String tableName){ System.out.println("start insert data ......"); try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); Put put = new Put("112233bbbcccc".getBytes());// 一个PUT代表一行数据,再NEW一个PUT表示第二行数据,每行一个唯一的ROWKEY,此处rowkey为put构造方法中传入的值 put.addColumn("column1".getBytes(), null, "aaa".getBytes());// 本行数据的第一列addColumn put.addColumn("column2".getBytes(), null, "bbb".getBytes());// 本行数据的第三列 put.addColumn("column3".getBytes(), null, "ccc".getBytes());// 本行数据的第三列 table.put(put); } catch (IOException e) { e.printStackTrace(); } System.out.println("end insert data ......"); } /** * 删除一张表 * * @param tableName */ public static void dropTable(String tableName) { try { TableName TABLE = TableName.valueOf(tableName); Admin admin = conn.getAdmin(); admin.disableTable(TABLE); admin.deleteTable(TABLE); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 根据 rowkey删除一条记录 * * @param tablename * @param rowkey */ public static void deleteRow(String tableName, String rowkey) { try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); List list = new ArrayList(); Delete d1 = new Delete(rowkey.getBytes()); list.add(d1); table.delete(list); System.out.println("删除行成功!"); } catch (IOException e) { e.printStackTrace(); } } /** * 组合条件删除 * * @param tablename * @param rowkey */ public static void deleteByCondition(String tablename, String rowkey) { // 目前还没有发现有效的API能够实现 根据非rowkey的条件删除 这个功能能,还有清空表全部数据的API操作 } /** * 查询所有数据 * * @param tableName */ public static void QueryAll(String tableName) { try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); ResultScanner rs = table.getScanner(new Scan()); for (Result r : rs) { System.out.println("获得到rowkey:" + new String(r.getRow())); for (Cell cell : r.listCells()) { System.out.println("列:" + new String(CellUtil.cloneFamily(cell)) + "====值:" + new String(CellUtil.cloneValue(cell))); } } } catch (IOException e) { e.printStackTrace(); } } /** * 单条件查询,根据rowkey查询唯一一条记录 * * @param tableName */ public static void QueryByCondition1(String tableName) { try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); Get scan = new Get("112233bbbcccc".getBytes());// 根据rowkey查询 Result r = table.get(scan); System.out.println("获得到rowkey:" + new String(r.getRow())); for (Cell cell : r.listCells()) { System.out.println("列:" + new String(CellUtil.cloneFamily(cell)) + "====值:" + new String(CellUtil.cloneValue(cell))); } } catch (IOException e) { e.printStackTrace(); } } /** * 单条件按查询,查询多条记录 * * @param tableName */ public static void QueryByCondition2(String tableName) { try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); Filter filter = new SingleColumnValueFilter(Bytes.toBytes("column1"), null, CompareOp.EQUAL, Bytes.toBytes("aaa")); // 当列column1的值为aaa时进行查询 Scan s = new Scan(); s.setFilter(filter); ResultScanner rs = table.getScanner(s); for (Result r : rs) { System.out.println("获得到rowkey:" + new String(r.getRow())); for (Cell cell : r.listCells()) { System.out.println("列:" + new String(CellUtil.cloneFamily(cell)) + "====值:" + new String(CellUtil.cloneValue(cell))); } } } catch (Exception e) { e.printStackTrace(); } } /** * 组合条件查询 * * @param tableName */ public static void QueryByCondition3(String tableName) { try { TableName TABLE = TableName.valueOf(tableName); Table table = conn.getTable(TABLE); List filters = new ArrayList(); Filter filter1 = new SingleColumnValueFilter(Bytes.toBytes("column1"), null, CompareOp.EQUAL, Bytes.toBytes("aaa")); filters.add(filter1); Filter filter2 = new SingleColumnValueFilter(Bytes.toBytes("column2"), null, CompareOp.EQUAL, Bytes.toBytes("bbb")); filters.add(filter2); Filter filter3 = new SingleColumnValueFilter(Bytes.toBytes("column3"), null, CompareOp.EQUAL, Bytes.toBytes("ccc")); filters.add(filter3); FilterList filterList1 = new FilterList(filters); Scan scan = new Scan(); scan.setFilter(filterList1); ResultScanner rs = table.getScanner(scan); for (Result r : rs) { System.out.println("获得到rowkey:" + new String(r.getRow())); for (Cell cell : r.listCells()) { System.out.println("列:" + new String(CellUtil.cloneFamily(cell)) + "====值:" + new String(CellUtil.cloneValue(cell))); } } rs.close(); } catch (Exception e) { e.printStackTrace(); } }} 到此,关于"Hbase的测试代码是怎样的"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
查询
条件
代码
测试
学习
本行
方法
更多
帮助
组合
实用
有效
成功
接下来
一行
代表
功能
多条
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东珠海模具加工erp软件开发
极玩致乐网络技术有限公司
网络技术课题工作内容
短视频服务器哪个配置好
设备服务器a47故障代码
全国计算机三级教程网络技术
数据库开发有什么用
软件开发心理测试怎样算正常
软件开发好还是做实施好
软件开发比赛有哪些内容
甘肃软件开发报价
软件开发蔡卓冰
通知网络安全小故事有奖征文
蛋白质数据库用途
网络技术有限公司照片
主机r星服务器可以直连么
中华人民共和国网络安全法文本
奥能网络技术开发
网络安全建设基本情况
鹿泉软件开发项目管理
数据库密码跟电脑密码有关联吗
机关网络安全维护 确保
外星人电脑怎么安装服务器
分布式数据库 原子性
朝阳小学国家网络安全宣传周活动
东营软件开发团队
开我的世界服务器需要什么cpu
数据库表大小写和下划线
肇庆代驾app软件开发
数据库中怎样建立表