CDH5.4.0 部署Phoenix

简介

Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表、插入数据和对HBase数据进行查询

因此Phoenix跟HBase是离不开的,Phoenix的安装也是基于HBase的。在安装Phoenix之前,请确保集群上已经安装了Hadoop集群跟HBase集群。

注意:Cloudera官方并不支持Phoenix,也就是说从Phoenix官网下的预编译的包在CDH安装的HBase上根本不能运行,Phoenix官网对此也没有任何说明!!!

1.编译源码

如果从Phoenix官网下载4.6.0的源码来编译,需要自己修改pom.xml文件,比较麻烦。Github下载chiastic-security修改过pom.xml文件的源码上传了,链接如下:

https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.6-HBase-1.0-cdh5.5

直接下载ZIP包

1.1下载该链接的源码,用maven进行编译

  • 进入phoenix-for-cloudera-4.6-HBase-1.0-cdh5.5目录
  • $ mvn package -DskipTests

在编译的过程中,可能会报错,不要放弃,多次使用命令mvn package -DskipTests编译,我就编译了N次才成功

1.2如果自己不想下载源码编译,我把我编译过的放在百度网盘里,自行下载。

https://pan.baidu.com/s/1M-gGpV7r4BVgNj3E-MOxmQ    提取码:o3vr

 

2.将相关jar拷贝到HBase的lib目录下

将相关jar包拷贝到复制到Hadoop集群,HBase的lib目录下

cp phoenix-4.6.0-cdh5.5.1-server.jar /usr/lib/hbase/lib

$ scp phoenix-4.6.0-cdh5.5.1-server.jar cdh2:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar

$ scp phoenix-4.6.0-cdh5.5.1-server.jar cdh3:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar

3.配置Phoenix客户端的CLASSPATH

将phoenix-4.6.0-cdh5.5.1-client.jar添加到Phoenix客户端的CLASSPATH中,这里是cdh2节点

在/etc/profile.d目录下新建phoenix.sh

export CLASSPATH=.:/opt/phoenix/phoenix-4.6.0-cdh5.5.1-client.jar

$ source phoenix.sh

 

4.配置hbase-site.xml

<!--phoenix Master-->
        <property> 
                <name>hbase.regionserver.wal.codec</name> 
                <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> 
        </property>
        <property> 
                <name>hbase.master.loadbalancer.class</name>
                 <value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value> 
        </property>
        <property> 
                <name>hbase.coprocessor.master.classes</name> 
                <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value> 
        </property>
        <property>
                <name>hbase.rpc.timeout</name>
                <value>300000</value>
        </property>
<!--phoenix Region Server-->
        <property>
                <name>hbase.region.server.rpc.scheduler.factory.class</name> 
                <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
        </property>
        <property> 
                <name>hbase.coprocessor.regionserver.classes</name>
                <value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>
        </property>
        <property>
                <name>hbase.rpc.timeout</name>
                <value>300000</value>
        </property>

将Hbase-site.xml 同步到Hadoop集群其它服务器

5.复制Hadoop相关配置文件到sqlline.py同级目录 (重要)

切换到与Sqlline.py同级目录

cp /etc/hadoop/conf/hdfs-site.xml .

cp /etc/hadoop/conf/core-site.xml .

cp /etc/hbase/conf/hbase-site.xml .

6.验证是否可用

如果hadoop集群,配置有kerberos,需要获取hbase的凭据

每次执行sqlline.py脚本时,最好用kinit命令重新获取下凭据,使用历史没过期的凭据可能会报错(重点)

./sqlline.py cdh2:2181:/hbase

sqlline version 1.1.8
0: jdbc:phoenix:cdh1:2181:/hbase> !table
+------------------------------------------+------------------------------------------+----------------------------------+
|                TABLE_CAT                 |               TABLE_SCHEM                |                TABLE_NAME        |
+------------------------------------------+------------------------------------------+----------------------------------+
|                                          | SYSTEM                                   | CATALOG                          |
|                                          | SYSTEM                                   | FUNCTION                         |
|                                          | SYSTEM                                   | SEQUENCE                         |
|                                          | SYSTEM                                   | STATS                            |
|                                          |                                          | test1                            |
+------------------------------------------+------------------------------------------+----------------------------------+

以上配置成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值