Hadoop-03 基于Hadoop的JavaEE数据可视化简易案例(升级使用HBase存储结果集)

Hadoop-03 基于Hadoop的JavaEE数据可视化简易案例(升级使用HBase存储结果集)

HBase工具类的编写

在上一示例的基础上增加HBase工具类的编写

package com.etc.util; import java.io.IOException; import java.util.Map; import java.util.TreeMap; 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.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.HBaseAdmin; 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; /** * HBase工具类 * * @author Administrator * */ public class HBaseUtil { /** * 扫描全表 * * @param tableName表名 * @return 键值集合 * @throws IOException */ public static Map<String, Integer> scan(String tableName) { //HBase配置对象 Configuration conf = HBaseConfiguration.create(); Map<String, Integer> map = new TreeMap<String, Integer>();// 键值集合 Connection conn = null;// Hbase数据库连接接口 try { conn = ConnectionFactory.createConnection(conf);// 获取数据库连接 Table tb = conn.getTable(TableName.valueOf(tableName));// 获取Table对象 ResultScanner rs = tb.getScanner(new Scan());// 扫描全表 for (Result row : rs) {// 遍历每一行记录 // 获取Key String key = Bytes.toString(row.getRow()); Integer value = null; // 获取value for (Cell cell : row.listCells()) { if (Bytes.toString(CellUtil.cloneFamily(cell)).equals("COUNT")) { value = Bytes.toInt(CellUtil.cloneValue(cell)); } } map.put(key, value); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (IOException e) { e.printStackTrace(); } } return map; } /** * 创建HBase数据表 * * @param tableName表名 * @param columnFamily列族名 * @throws IOException异常 */ public static void createTable(String tableName, String columnFamily) throws IOException { Configuration conf = HBaseConfiguration.create(); // 建立HBase数据库的连接 Connection conn = ConnectionFactory.createConnection(conf); // 创建HBase数据库Admin对象 HBaseAdmin admin = (HBaseAdmin) conn.getAdmin(); if (admin.tableExists(tableName)) { admin.disableTable(tableName);// 先使表无效 admin.deleteTable(tableName);// //删除表 } // 新建一个表描述 HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf(tableName)); // 在表描述里添加列族 tableDesc.addFamily(new HColumnDescriptor(columnFamily)); // 根据配置好的表描述建表 admin.createTable(tableDesc); conn.close(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfxsj.html