1、创建封装对象 (列簇项)
package com.aura.bean; import java.io.Serializable; //hbase 列簇项 public class CategoryClickCount implements Serializable { //点击的品类 private String name; //点击的次数 private long count; public String getName() { return name; } public void setName(String name) { this.name = name; } public long getCount() { return count; } public void setCount(long count) { this.count = count; } public CategoryClickCount(String name, long count) { this.name = name; this.count = count; } }
2、编写接口 插入与查询
package com.aura.dao; import com.aura.bean.CategoryClickCount; import java.util.List; //插入与查询 接口 public interface HBaseDao { //往hbase里面插入一条数据 public void save(String tableName,String rowkey,String family,String q,long value); //根据rowkey(查询)返回数据
/** * 在Hbase查询中 输入tableName与rowkey 比按(输入)family或者时间戳 更快 * 因为(输入)family或者时间戳会降低查询性能 */public List<CategoryClickCount> count(String tableName,String rowkey);}
3、编写实现类
package com.aura.dao.impl; import com.aura.bean.CategoryClickCount; import com.aura.dao.HBaseDao; 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.client.*; import org.apache.hadoop.hbase.filter.PrefixFilter; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; import java.util.ArrayList; import java.util.List; //实现类 public class HBaseImpl implements HBaseDao { HConnection htablePool = null; //HConnection 获取HBase连接 类似于JDBC public HBaseImpl(){ //创建类自动加载
//设置程序入口 Configuration conf = HBaseConfiguration.create(); //HBase自带的zookeeper conf.set("hbase.zookeeper.quorum","hadoop02:2181");//zookeeper监控中一个的hbase端口号 //conf.set("zookeeper.znode.parent","/mybase");
// HBase原数据存在zookeeper中的mybase目录下 (此时本集群没有配置这个参数,所以省略)