`
zhang_xzhi_xjtu
  • 浏览: 536398 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

simplehbase对JOPO新增xml配置和无配置方式

阅读更多
simplehbase介绍文章如下:
https://github.com/zhang-xzhi/simplehbase/wiki/C00-simplehbase-3%E5%88%86%E9%92%9F%E7%AE%80%E4%BB%8B

github
https://github.com/zhang-xzhi/simplehbase/
https://github.com/zhang-xzhi/simplehbase/wiki



Data Object需要被simpleHbase识别,目前有3种方式来配置JOPO方式。

simplehbase在v0.9(包含v0.9)之前对于POJO的配置,只支持annotation的形式。




## annotation的方式

HBaseTable标记DO类型。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface HBaseTable {

/**
* Default family name.
*
* @return default family.
*/
public String defaultFamily() default "";
}

HBaseColumn标记DO类型中的属性。

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface HBaseColumn {

/**
* Family name.
*
* @return family.
*/
public String family() default "";

/**
* Qualifier name.
*
* @return qualifier.
*/
public String qualifier();
}



## xml配置方式

xml配置方式如下:在ConfigResource增加如下xml配置。


<MappingType className="com.alipay.simplehbase.myrecord.MyRecordV3" defaultFamily="MyRecordFamily">
<field name="id" qualifier="id" family="MyRecordFamily"
isVersioned="false" />
<field name="name" qualifier="name" />
<field name="age" />
<field name="date" />
<field name="gender" />
</MappingType>

其中

MappingType中
className必填,对应JOPO的classname。
defaultFamily选填。

field中
name必填,对应于JOPO的field name。
qualifier选填,无值时,qualifier为name。
family选填,无值时,使用defaultFamily,defaultFamily为空时,使用qualifier查找对应的family,需要在配置的HTable中,该列名只能在唯一的列簇下。
isVersioned选填,true时表示isVersioned,其他情况为false。


## 无配置方式

有如下2个注意点。

* JOPO中的static field不解析为htable对应的列信息。
* 对于每一个field,对应HTable的列名,在配置的HTable中,该列名只能在唯一的列簇下。


## 3种解析方式的优先级
* 1 xml config方式。
* 2 annotation方式。
* 3 无配置方式。

1
0
分享到:
评论
2 楼 zhang_xzhi_xjtu 2014-12-03  
由于hbase版本太多,simplehbase自带了大量测试代码。
需要使用时,你可以配置为你的集群地址,跑一遍测试代码,就可以测试出兼容性了。
1 楼 xiaocase 2014-12-01  
请问楼主,simplehbase支持hdp,cdh等发行版的hadoop吗?

相关推荐

Global site tag (gtag.js) - Google Analytics