Phoenix 官方提供了相应的导入和导出的方案,分别位于:
导出需要依赖 Apache Pig 相应进行实现。我们先来聊聊如何导出吧。
环境:HDP 3.0.0、HBase 2.0.0、Phoenix 5.0.0、Pig 0.16.0
导出
Phoenix 官方提供的 Pig 方案,看似很简单,其实还是有很多需要注意的地方,比较官方给的都是最简单的示例,而实际应用场景的时候,会碰到很多意想不到的问题。我在本文就讲讲我的实现方法和遇到的坑吧。
以下操作需要先安装 Pig 环境。
test.pig
REGISTER /usr/hdp/3.0.0.0-1634/hbase/lib/*.jar;
REGISTER lib/*.jar;
rows = load 'hbase://table/DOP_VISIT_INFO_V2' USING org.apache.phoenix.pig.PhoenixHBaseLoader('dev-dmp3.fengdai.org,dev-dmp4.fengdai.org,dev-dmp5.fengdai.org');
REGISTER:注册所需要的包,官方示例中没有响应的体现,在使用过程中,如果遇到找不到类的相关问题,一般就是包不存在导致的,可以通过 REGISTER 进行引用, 并且支持相对路径和模糊匹配哦。
hbase://table/DOP_VISIT_INFO_V2 :是指需要备份的表,如果是全表就用 hbase://table ,后面跟表名,这里就是 DOP_VISIT_INFO_V2 查询的结果导出则用 hbase://query ,后面跟查询语句。