[关闭]
@xtccc 2015-11-02T01:37:44.000000Z 字数 1668 阅读 3447

Build Phoenix Against HBase 1.0 (CDH 5.4.7)

给我写信
GitHub

此处输入图片的描述

Phoenix



升级HBase与Phoenix


升级CDH(Using Local Repo)中,我将CDH升级到了5.4.7,其中HBase从0.98.6升级到了1.0.0。在升级前,Phoenix的版本是 4.3.1。升级后,我将Phoenix换成了4.6.0-hbase-1.0,但是当我执行sqlline.py <zk>时,出现问题:

QQ20151029-1@2x.png-273.9kB

原因是我们需要针对CDH 4.5.7 重新编译Phoenix,参考 这里




编译Phoenix


编译时,我们指定使用CDH 5.4.7的JARs,Repository的设定参考 Using the CDH 5 Maven Repository

并且,源码中还有两处要做修改,否则会编译失败,参考 Using Phoenix with Cloudera Hbase (installed from repo)

具体而言,对pom.xml文件做如下改动:

  1. </repositories>
  2. <repository>
  3. <id>cloudera</id>
  4. <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
  5. </repository>
  6. </repositories>
  7. <properties>
  8. <hbase.version>1.0.0-cdh5.4.7</hbase.version>
  9. <hadoop-two.version>2.6.0-cdh5.4.7</hadoop-two.version>
  10. <hadoop.version>2.6.0-cdh5.4.7</hadoop.version>
  11. <pig.version>0.12.0</pig.version>
  12. <flume.version>1.5.0-cdh5.4.7</flume.version>
  13. </properties>


文件 phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexMerger.java
第84行:为方法 prepareMutationsForMerge 在最后加上一个参数 1

文件 phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexSplitTransaction.java
第291行:为方法 splitRegion 在最后加上一个参数 1



现在,通过mvn clean install -DskipTests可以编译成功!
QQ20151029-1@2x.png-205.8kB




将编译好的Phoenix安装到HBase集群中

下载官方的 phoenix-4.6.0-HBase-1.0,放在集群的某个目录下,并将其解压。解压后的根目录下有很多jar文件,用我们新编译出的jar包替换以下的jar文件:



将新编译出的 phoenix-4.6.0-HBase-1.0-server.jar放到每一个RegionServer节点的HBase的library path下(例如 /opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase/lib ),并重启HBase服务。

现在,可以正常使用Phoenix的客户端了,如下:
QQ20151029-2@2x.png-234.2kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注