重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)
成都创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站建设、成都做网站、成都网页设计、小程序开发、成都网站开发、成都网站制作、成都软件开发、重庆APP开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
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!"); } }