HBase 高可用集群整合 Phoenix 配置

本文介绍了如何在HBase高可用集群上整合Phoenix,包括所需版本、坑点提示、配置步骤以及客户端设置。重点强调了Phoenix客户端配置、环境变量设置以及HBase-site.xml的修改。同时,提到了程序开发时操作HBase+PhoenixDB的两种方式:使用Query Server和JDBC驱动。
摘要由CSDN通过智能技术生成

HBase 高可用集群整合 Phoenix 配置

接上文:HBase 高可用集群配置

命令行参考:https://blog.csdn.net/ubuntu64fan/article/details/80832903

整合 phoenix 虽然简单,但是有坑。按照官网(http://phoenix.apache.org/installation.html )进行操作在新版本上基本不会成功!

首先确保你的 hbase ha 搭建完全正常(查看各节点日志 “$HBASE_HOME/logs/*.log” 文件里没有任何 ERROR)。好了,接下来做整合。

我采用 apache hbase-2.4.2 + phoenix-hbase-2.4-5.1.1-bin.tar.gz,下载(http://phoenix.apache.org/download.html)链接:

        http://www.apache.org/dyn/closer.lua/phoenix/phoenix-5.1.1/phoenix-hbase-2.4-5.1.1-bin.tar.gz

将 phoenix-hbase-2.4-5.1.1-bin.tar.gz 解压到全部HBase的节点上,然后把下面2个 jar 复制到 $HBASE_HOME/lib 目录下(每个hbase节点都要这么做):

        phoenix-server-hbase-2.4-5.1.1.jar
        htrace-core-3.1.0-incubating.jar

其中 htrace-core-3.1.0-incubating.jar 我是从maven repo 下载的(这个巨坑,phoenix 居然没有携带):

       https://repo1.maven.org/maven2/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar

将下面的配置段加入到全部HBase节点的hbase-site.xml 中:

  <property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>

接着,选中其中某台作为 phoenix 客户端(命令行和jdbc),仅作为 phoenix 客户端的机器需要配置如下环境变量(/etc/profile.d/phoenix-clienv.sh 名字任意):

export JAVA_HOME=/usr/local/java/jdk1.8.0_271
export JRE_HOME=$JAVA_HOME/jre
export ZK_HOME=/usr/local/apache/apache-zookeeper-3.5.9-bin

export PHOENIX_HOME=/opt/hacl/phoenix-hbase-2.4-5.1.1-bin
export PHOENIX_OPTS="-Djava.library.path=/opt/hacl/hadoop-3.3.0/lib/native"

export HBASE_CLIENT_HOME=/opt/hacl/hbase-2.4.2-client
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$PHOENIX_HOME:$PHOENIX_HOME/phoenix-client-hbase-2.4-5.1.1.jar:$HBASE_CLIENT_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PHOENIX_HOME/bin:$ZK_HOME/bin

就是要把 phoenix-client-hbase-2.4-5.1.1.jar 配置到 JAVA 的 CLASSPATH 里。然后把 $HBASE_HOME/conf/hbase-site.xml 复制到 $PHOENIX_HOME/bin/ 目录下,覆盖原有的文件。

接下来重启  HBase 集群。然后运行phoenix命令行客户端接入HBase:

cd $PHOENIX_HOME

bin/sqlline.py flink01,flink02,flink03

如下输出:

[root@flink01 phoenix-hbase-2.4-5.1.1-bin]# bin/sqlline.py flink01.pepstack.com
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect -p driver org.apache.phoenix.jdbc.PhoenixDriver -p user "none" -p password "none" "jdbc:phoenix:flink01.pepstack.com"
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hacl/phoenix-hbase-2.4-5.1.1-bin/phoenix-client-hbase-2.4-5.1.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hacl/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Connecting to jdbc:phoenix:flink01.pepstack.com
Connected to: Phoenix (version 5.1)
Driver: PhoenixEmbeddedDriver (version 5.1)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
sqlline version 1.9.0
0: jdbc:phoenix:flink01.pepstack.com> !table
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+---------
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车斗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值