java操作hbase api
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)java源码package com.hbase.jdbc;import java.util.ArrayList
千家信息网最后更新 2026年11月02日java操作hbase api
需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)
java源码
package com.hbase.jdbc;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.TableName;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HTable;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.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 HBaseOperate { public static Configuration conf; /* * hbase的基本设置 */ static{ conf = HBaseConfiguration.create(); conf.set("hbase.master", "192.168.1.100:600000"); conf.set("hbase.zookeeper.quorum", "192.168.192.137"); } public static void main(String args[]) throws Exception{ String[] cols = {"age","sex","address"}; String tableName = "userInfo3";// new HBaseOperate().createTable(tableName, cols); String[] columnValue = {"北京","1","16",}; String[] column = {"baseAddress","baseSex","baseAge"};// new HBaseOperate().listTable();// new HBaseOperate().insertData(tableName,"doubi", column, columnValue);// new HBaseOperate().dropTable(tableName);// new HBaseOperate().getRow(tableName, "wj");// new HBaseOperate().deleteRow(tableName, "wj");// new HBaseOperate().getAllRow(tableName);// new HBaseOperate().getRowByCondition(tableName); new HBaseOperate().getRowByManyCondition(tableName); } /** * 创建表 */ public void createTable(String tableName,String cols[]) throws Exception{ HBaseAdmin ha = new HBaseAdmin(conf); if(ha.tableExists(tableName)){ System.out.println("表已经存在"); }else{ HTableDescriptor table = new HTableDescriptor(TableName.valueOf(tableName)); for(String c: cols){ HColumnDescriptor col=new HColumnDescriptor(c);//列簇名 table.addFamily(col); } ha.createTable(table); ha.close(); System.out.println("创建表成功!"); } } /** * 删除表 */ public void dropTable(String tableName) throws Exception{ System.out.println("start drop table!"); HBaseAdmin ha = new HBaseAdmin(conf); ha.disableTable(tableName); ha.deleteTable(tableName); System.out.println("drop table success!"); } /** * 查看所有表 */ public void listTable() throws Exception{ HBaseAdmin ha = new HBaseAdmin(conf); TableName[] tableNames = ha.listTableNames(); for(int i = 0; i < tableNames.length; i ++){ System.out.println(tableNames[i].getNameAsString()); } } /** * 插入数据 */ public void insertData(String tableName, String rowKey, String[] column, String[] columnValue) throws Exception{ System.out.println("start insert table!"); HTable table = new HTable(conf, tableName); HTableDescriptor hd = table.getTableDescriptor(); HColumnDescriptor[] hcds = hd.getColumnFamilies();//最后一列开始 Put put = new Put(rowKey.getBytes()); for(int i = 0; i < hcds.length; i ++){ HColumnDescriptor hcd = hcds[i]; put.add(hcd.getName(), column[i].getBytes(), columnValue[i].getBytes()); //family column value } table.put(put); System.out.println("end insert table!"); } /** * 获取一行数据 */ public void getRow(String tableName, String key) throws Exception{ System.out.println("start get row!"); HTable table = new HTable(conf, tableName); Get get = new Get(key.getBytes()); Result result = table.get(get); for(Cell cell : result.rawCells()){ System.out.println("row family++++++ " + new String(CellUtil.cloneFamily(cell)) + " row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + " row value ++++++" + new String(CellUtil.cloneValue(cell))); } System.out.println("get row end!"); } /** * 删除一行数据 */ public void deleteRow(String tableName, String key) throws Exception{ System.out.println("delete row start!"); HTable table =new HTable(conf, tableName); Delete d1 = new Delete(key.getBytes()); table.delete(d1); System.out.println("delete row end!"); } /** * 获取表所有数据 */ public void getAllRow(String tableName) throws Exception{ System.out.println("get all row start!"); HTable table = new HTable(conf, tableName); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for(Result result : rs){ for(Cell cell : result.rawCells()){ System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) + " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + " row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + " row value ++++++" + new String(CellUtil.cloneValue(cell))); } } System.out.println("get all row end"); } /** * 根据条件查询记录 */ public void getRowByCondition(String tableName) throws Exception{ System.out.println("begin query!"); HTable table = new HTable(conf, tableName); Filter filter = new SingleColumnValueFilter(Bytes.toBytes("sex"), Bytes.toBytes("baseAge"), CompareOp.EQUAL, Bytes.toBytes("100")); //family column 比较符号 比较值 Scan s = new Scan(); s.setFilter(filter); ResultScanner rs = table.getScanner(s); for(Result result : rs){ for(Cell cell : result.rawCells()){ System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) + " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + " row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + " row value ++++++" + new String(CellUtil.cloneValue(cell))); } } System.out.println("end query!"); } /** * 多条件查询 */ public void getRowByManyCondition(String tableName) throws Exception{ System.out.println("begin query!"); HTable table = new HTable(conf, tableName); Filter filterSex = new SingleColumnValueFilter(Bytes.toBytes("sex"), Bytes.toBytes("baseAge"), CompareOp.EQUAL, Bytes.toBytes("16")); //family column 比较符号 比较值 Filter filterAge = new SingleColumnValueFilter(Bytes.toBytes("age"), Bytes.toBytes("baseSex"), CompareOp.EQUAL, Bytes.toBytes("1")); //family column 比较符号 比较值 List filterList = new ArrayList(); filterList.add(filterAge); filterList.add(filterSex); Scan s = new Scan(); FilterList filterListS = new FilterList(filterList); s.setFilter(filterListS); //可以设置查询结果的开始 和 结束位置(针对的是key值) s.setStartRow("wj".getBytes()); s.setStopRow("wj".getBytes()); ResultScanner rs = table.getScanner(s); for(Result result : rs){ for(Cell cell : result.rawCells()){ System.out.println("row key++++++" + new String(CellUtil.cloneRow(cell)) + " row family++++++ " + new String(CellUtil.cloneFamily(cell)) + " row column++++++ " + new String(CellUtil.cloneQualifier(cell)) + " row value ++++++" + new String(CellUtil.cloneValue(cell))); } } System.out.println("end query!"); }}
数据
符号
查询
一行
条件
成功
位置
源码
结果
北京
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海睿民互联网科技有限公司
互联网科技垄断
智网互联网科技
南京欣网互联网科技
苏州互联网科技贷款公司
科技创新互联网企业
广西互联网科技公司
万达互联网科技
天下捷融互联网科技
互联网公司会议桌创意科技软装饰
常德市电业局互联网科技部
互联网企业和科技型企业
互联网科技商业
国大互联网教育科技有限公司工作
互联网科技圈年度人物
南通创西澳互联网科技有限公司
互联网科技数字货币
2021世界互联网领先科技成果发布
现代互联网科技公司
武汉亿视互联网科技有限公司
互联网科技网
广州紫鲸互联网科技有限公司
上海电发互联网科技有限公司
承德科技产业互联网发展
南平创想时代互联网科技有限公司
知域互联网科技有限公司大骗子
互联网科技大奖都有哪些公司
互联网金融科技名词解释
江苏互联网科技小贷
互联网领先科技成果宣传视频