java操作hbase api
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)java源码package com.hbase.jdbc;import java.util.ArrayList
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
辽宁网络安全保障联盟
西安市交警支队各车管所服务器
魔兽世界怀旧服搬砖选什么服务器
数据报表软件开发
数据库判断记录是否存在
开发区软件开发公司聚顶科技好
数据库文本宽度设置
智慧城市网络安全问题
资深软件开发公司
软件开发的学生需要电脑吗
合肥滨湖软件开发培训
软件开发与运维技术学习
济宁软件开发公司c
正确的网络安全宣传语
墨尔本大学的网络安全专业
电影网app用多大的服务器
极烽网络技术咨询公司
榆林新闻网络安全
广州咖云互联网科技有限公司
服务器如何把磁盘映射到本地用
北京公安大学网络安全就业情况
枣庄市网络安全科普知识
日记类软件开发
电脑服务器缓存不够怎么办
泰安联想服务器代理价格
高青计划管理软件开发
吉林专业软件开发服务检测中心
嵌入式软件开发版
网络技术属于科技吗
榆林新闻网络安全