hbase 1.2 api 工具类
来源:互联网 发布:淘宝朗丝香格里拉窗帘 编辑:程序博客网 时间:2024/06/05 02:55
hbase之前版本有些api已经deprecated了,下面是1.2的api,没有deprecated
import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.Cell;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.util.Bytes;public class HBaseUtils { private static Configuration conf = HBaseConfiguration.create(); private static ExecutorService pool=Executors.newScheduledThreadPool(20); private static Connection connection = null; private static HBaseUtils instance=null; private HBaseUtils(){ if(connection==null){ try {connection=ConnectionFactory.createConnection(conf, pool);} catch (IOException e) {e.printStackTrace();} } } public static synchronized HBaseUtils getInstance(){ if(instance==null){ instance=new HBaseUtils(); } return instance; } /** * 创建表 * @throws IOException */ public void createTable(String tableName, String[] columns) throws IOException { Admin admin = connection.getAdmin(); TableName name=TableName.valueOf(tableName); if (admin.tableExists(name)) { admin.disableTable(name); admin.deleteTable(name); } else { HTableDescriptor desc =admin.getTableDescriptor(name); for (String column : columns) { desc.addFamily(new HColumnDescriptor(column)); } admin.createTable(desc); } } /** * 插入一行记录 * @param tablename * 表名 * @param row * 行名称 * @param columnFamily * 列族名 * @param columns * (列族名:column)组合成列名 * @param values * 行与列确定的值 */ public void insertRecord(String tableName, String row, String columnFamily, String[] columns, String[] values) { try { TableName name=TableName.valueOf(tableName); Table table = connection.getTable(name); Put put = new Put(Bytes.toBytes(row)); for (int i = 0; i < columns.length; i++) { put.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(String.valueOf(columns[i])), Bytes.toBytes(values[i])); table.put(put); } } catch (IOException e) { e.printStackTrace(); } } /** * 删除一行记录 * @param tablename * 表名 * @param rowkey * 行名 * @throws IOException */ public void deleteRow(String tablename, String rowkey) throws IOException { TableName name=TableName.valueOf(tablename); Table table = connection.getTable(name); List<Delete> list = new ArrayList<Delete>(); Delete d1 = new Delete(rowkey.getBytes()); list.add(d1); table.delete(list); } /** * 查找一行记录 * @param tablename * 表名 * @param rowkey * 行名 */ public static void selectRow(String tablename, String rowKey) throws IOException { TableName name=TableName.valueOf(tablename); Table table = connection.getTable(name); Get g = new Get(rowKey.getBytes()); Result rs = table.get(g); for (Cell cell : rs.rawCells()) { System.out.print(new String(cell.getRowArray()) + " "); System.out.print(new String(cell.getFamilyArray()) + ":"); System.out.print(new String(cell.getQualifierArray()) + " "); System.out.print(cell.getTimestamp() + " "); System.out.println(new String(cell.getValueArray())); } } /** * 查询表中所有行 * @param tablename */ public ListscanAllRecord(String tablename) { try { List entityList=new ArrayList (); TableName name=TableName.valueOf(tablename); Table table = connection.getTable(name); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for(Result result : rs){ for (Cell cell : result.rawCells()) { HBaseBaseEntity entity=new HBaseBaseEntity(); entity.setRowKey(new String(CellUtil.cloneRow(cell))); entity.setFamily(new String(CellUtil.cloneFamily(cell))); entity.setQualifier(new String(CellUtil.cloneQualifier(cell))); entity.setTimestamp(cell.getTimestamp()); entity.setValue(CellUtil.cloneValue(cell)); entityList.add(entity); } } return entityList; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 删除表操作 * @param tablename * @throws IOException */ public void deleteTable(String tablename) throws IOException { try { TableName name=TableName.valueOf(tablename); if(admin.tableExists(name)){ admin.disableTable(name); admin.deleteTable(name); } } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } }}
0 0
- hbase 1.2 api 工具类
- HBase 客户端API --写的工具类
- HBase API——封装成工具类Utils
- 简单封装hbase的Java api工具类 demo,以及hbase的部分ColumFamily压缩验证
- Hbase 工具类
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- hbase java api 类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- hbase api
- hbase api
- Python高阶函数——map/reduce/filter/sorted
- Python爬虫包 BeautifulSoup 学习(七) children等应用
- 第七届蓝桥杯大赛个人赛省赛(软件类)真题 C语言A组 1
- 单片机数码管显示
- 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例(2)
- hbase 1.2 api 工具类
- 初识MySQL
- 清除浮动常用方法
- LeetCode--292. Nim Game
- Java——线程sleep()join()yield()方法
- 欢迎使用CSDN-markdown编辑器
- 2016年总结以及2017年展望(工作技术篇)
- 数码管显示
- display封装