java操作hbase api
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)java源码package com.hbase.jdbc;import java.util.ArrayList
千家信息网最后更新 2024年11月27日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 比较符号 比较值 ListfilterList = 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安全错误
数据库的锁怎样保障安全
电脑的服务器地址
免费 vod服务器软件
数据库如何录入日期型数据
计算机网络技术专业教育背景
网络安全的一些内容
2018我国网络安全
加入mc服务器要多久
网络安全盗号
Linux达梦数据库初始化实例
怀柔区网络技术信息哪个好
芯片模拟软件开发
安全网络技术手抄报
滴滴高级软件开发工程师级别
华三服务器网口不亮灯
正在连接服务器无法登陆
传奇三私服服务器
银川数据防泄密软件开发
大连诺达网络技术有限公司
软件开发大学用什么书籍
ebsco数据库学校入口
山东app软件开发
网络安全 健康成长作文
江西省数盾网络安全
网络安全人员薪资
mysql数据库备份报错
天津网络安全防护网
服务器 apache
j3455 服务器
部队筑牢网络安全防线讨论
魔兽世界怀旧服与服务器断开