hbase 2.1.0 编译phoenix5.0.0

0、环境

cdh6.2.1

hadoop3.0.0

hbase2.1.0

maven 3.6.0

git2.11.0

1、编译源码

# clone源码
git clone https://github.com/apache/phoenix.git
# 进入源码根目录
cd phoenix/
# 查看tag ,或者查看分支 git branch -a
git tag
# 选择一个版本,进入其分支,或者切换到某个分支:git checkout -b remotes/origin/5.x-cdh6
git checkout tags/v5.0.0-HBase-2.0
# 编译
#将pom.xml中的hbase版本从2.0.0改到2.1.0
mvn -T2C install -DskipTests

#build提示CellComparatorImp构造方法参数问题,原来的compare方法用的是两参数方法,
#现在原来的方法设置了final属性,我这里改为三参数方法,但里面的默认值不变。修改后如下

	public IndexMemStore() {
  this(new CellComparatorImpl(){
      @Override
      public int compare(Cell a, Cell b, boolean ignoreSequenceid) {
          return super.compare(a, b, true);
      }
  });
}


2、使用

cp phoenix-assembly/target/phoenix-5.0.0-HBase-2.0.tar.gz /opt/
cd /opt
tar -zxf phoenix-5.0.0-HBase-2.0.tar.gz
cd phoenix-5.0.0-HBase-2.0


# 添加如下配置,并保存退出
vim ~/.bash_profile
export PHOENIX_HOME=/opt/phoenix-5.0.0-HBase-2.0
export PATH=$PATH:$PHOENIX_HOME/bin

#接下来将Phoenix根目录下的phoenix-5.0.0-HBase-2.0-*.jar 包
#分发到每个hreginserver的hbase/lib下

scp phoenix-5.0.0-HBase-2.0-*.jar root@cdh3:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/lib/
scp phoenix-5.0.0-HBase-2.0-*.jar root@cdh2:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/lib/
scp phoenix-5.0.0-HBase-2.0-*.jar root@cdh1:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/lib/


#登陆Cloudera Manager页面,然后修改HBase配置,进入配置页面后搜索hbase-site.xml 的
 HBase 服务高级配置代码段,然后添加如下配置,然后重启 HBase 使配置生效。

hbase.table.sanity.checks
false


#下载jar包放到每个hreginserver的hbase/lib下

https://mvnrepository.com/artifact/org.apache.htrace/htrace-core/3.1.0-incubating

# 后面跟的参数为HBase配置的ZK的地址
sqlline.py cdh2:2181

3、namespace mapping 和二级索引

namespace mapping
hbase 2.1.0 编译phoenix5.0.0_第1张图片
hbase 自这里相当于服务端,phoenix相当于客户端
phoenix.schema.isNamespaceMappingEnabled这个配置在服务端和客户端都要配置
hbase 的hbase-site.xml
phoenix bin目录下的hbase-site.xml
两个地方

二级索引
hbase 2.1.0 编译phoenix5.0.0_第2张图片
hbase 2.1.0 编译phoenix5.0.0_第3张图片

你可能感兴趣的:(hbase,phoenix)