phoenix/hbase事务支持配置与使用

1、        下载对应集群版本的phoenix,地址

http://mirrors.shu.edu.cn/apache/phoenix/

phoenix/hbase事务支持配置与使用

phoenix支持的最新版本的CDH是5.11.2,很幸运,1月19号官方推出了这个版本,刚好解决了燃眉之急

备注:如果不是CDH版本,直接下载上边对应的hbase版本应该就可以,这里的版本对应很重要,如果版本不匹配,会有各种jar包不匹配问题,如果你用的是CDH较低的版本,可以去这里找一下:

https://github.com/chiastic-security/phoenix-for-cloudera

phoenix/hbase事务支持配置与使用

这里版本支持也很多,下载下来编译后可食用

2、        环境配置

Ø  解压安装包:

tar –zxvf  apache-phoenix-4.13.2-cdh5.11.2-bin.tar.gz

phoenix/hbase事务支持配置与使用         

Ø  配置phoenix的hbase-site.xml配置文件

基于已配置好的phoenix文件添加如下参数配置

phoenix/hbase事务支持配置与使用

l   参数transactions设置为true

l   配置hdfs快照目录位置

l   设置事务支持超时时间60S

Ø  配置hbase端参数配置

 phoenix/hbase事务支持配置与使用

 

这里配置跟上一步一样,也就是说hbase所有节点的hbase-site.xml也要配置这三个参数

 

Ø  复制tephra、tephra-env.sh到hbase的bin目录下,每一台hbase的服务器都要复制一份

这两个脚本位置在phoenix的bin目录下:

phoenix/hbase事务支持配置与使用

cp tephra /opt/cloudera/parcels/CDH/lib/hbase/bin/

cp tephra-env.sh /opt/cloudera/parcels/CDH/lib/hbase/bin/

最后把这两个脚本的scp到另外的hbase服务器的目录下

 

Ø  重启hbase集群

Ø  启动tephra

这里启动成功与否要看日志:(日志路径如果没有做过修改的话,在tmp下的tephra-root目录下)

cat /tmp/tephra-root/tephra-service-root-.log

如果没看到错误日志,就说明启动成功:

phoenix/hbase事务支持配置与使用

如果有错误日志,如下:

Exception in thread "main" java.lang.NoClassDefFoundError:com/google/common/util/concurrent/Service$Listener

phoenix/hbase事务支持配置与使用 

这里要切换一下hbase下的guava  jar包版本,切换到13.0的版本

guava-13.0.1

phoenix/hbase事务支持配置与使用

注:三台机器都要切换,3台机器也都要确保tephra启动,启动后jps检查服务:

phoenix/hbase事务支持配置与使用

一切就绪,启动phoenix

 

Ø  启动phoenix

3、        测试

phoenix/hbase事务支持配置与使用 

Ø  测试事务支持,关闭自动提交

phoenix/hbase事务支持配置与使用

Ø  测试rollback

先创建一张测试表:

CREATE TABLE my_table (k BIGINT PRIMARY KEY, v VARCHAR) TRANSACTIONAL=true;
接下来就可以测试了,如图:

phoenix/hbase事务支持配置与使用

       成功!

              备注:配置完后commit和rollback都没问题