尝试简化基于hbase的java应用开发的simplehbase介绍_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 尝试简化基于hbase的java应用开发的simplehbase介绍

尝试简化基于hbase的java应用开发的simplehbase介绍

 2013/10/9 22:01:49  zhang_xzhi_xjtu  程序员俱乐部  我要评论(0)
  • 摘要:simplehbase尝试简化基于hbase的java应用开发。Simplehbase主要提供以下功能:1POJO和hbase的映射。2提供client,简化hbase的数据操作。3提供强语义的插入和更新操作。Insert操作:只有原数据不存在时,才put成功。Update操作:只有原数据存在时,才put成功。simplehbase的代码,测试(示例)代码,文档见附件。看一个简单的例子:1通过注解标示要保存在hbase中的POJO。该POJO对应hbase的Key-Value中的Value
  • 标签:Java 应用 开发 ASE 应用开发
simplehbase尝试简化基于hbase的java应用开发。

Simplehbase主要提供以下功能:
1 POJO和hbase的映射。
2 提供client,简化hbase的数据操作。
3 提供强语义的插入和更新操作。
  Insert操作:只有原数据不存在时,才put成功。
  Update操作:只有原数据存在时,才put成功。

simplehbase的代码,测试(示例)代码,文档见附件。


看一个简单的例子

1 通过注解标示要保存在hbase中的POJO。该POJO对应hbase的Key-Value中的Value。
class="java">@HBaseTable(defaultFamily = MyRecordConstants.ColumnFamilyName, defaultConvertor = DefaultColumnConvertor.class)
public class MyRecord {
    @HBaseColumn(qualifier = "id")
    private int id;
    @HBaseColumn(qualifier = "name")
    private String name;
    @HBaseColumn(qualifier = "date")
    private Date date;
    @HBaseVersion
    @HBaseColumn(qualifier = "version")
    private long version;
}



2 定义RowKey,该类型对应hbase的key-value中的key。
public class MyRecordRowKey implements RowKey {

    private String row;

    public MyRecordRowKey(String row) {
        this.row = row;
    }

    @Override
    public byte[] toBytes() {
        return Bytes.toBytes(row);
    }

    @Override
    public String getTableName() {
        return MyRecordConstants.TableName;
    }
}




3 使用simplehbase的client和hbase进行交互。

保存数据到hbase。

        MyRecord myRecord = new MyRecord();
        myRecord.setId(0);
        myRecord.setName("allen1");
        myRecord.setDate(new Date());
        myRecord.setVersion(0L);
        MyRecordRowKey myRecordRowKey = new MyRecordRowKey("key_allen1");
        simpleHbaseClient.putObject(myRecordRowKey, myRecord);



删除数据

        MyRecordRowKey myRecordRowKey = new MyRecordRowKey("key_allen1");
        simpleHbaseClient.deleteObject(myRecordRowKey);




按照key查找数据

MyRecord myRecord2 =  simpleHbaseClient.findObject(myRecordRowKey,
                MyRecord.class);




按照startKey和endKey查找列表
        MyRecordRowKey startRowKey = new MyRecordRowKey("key_allen1");
        MyRecordRowKey endRowKey = new MyRecordRowKey("key_allen8");
        List<MyRecord> list = simpleHbaseClient.findObjectList(startRowKey,
                endRowKey, MyRecord.class);




  • simplehbase.7z (556 KB)
  • 下载次数: 1
发表评论
用户名: 匿名