1、 下载对应集群版本的phoenix,地址
http://mirrors.shu.edu.cn/apache/phoenix/
phoenix支持的最新版本的CDH是5.11.2,很幸运,1月19号官方推出了这个版本,刚好解决了燃眉之急
备注:如果不是CDH版本,直接下载上边对应的hbase版本应该就可以,这里的版本对应很重要,如果版本不匹配,会有各种jar包不匹配问题,如果你用的是CDH较低的版本,可以去这里找一下:
https://github.com/chiastic-security/phoenix-for-cloudera
这里版本支持也很多,下载下来编译后可食用
2、 环境配置
Ø 解压安装包:
tar –zxvf apache-phoenix-4.13.2-cdh5.11.2-bin.tar.gz
Ø 配置phoenix的hbase-site.xml配置文件
基于已配置好的phoenix文件添加如下参数配置
l 参数transactions设置为true
l 配置hdfs快照目录位置
l 设置事务支持超时时间60S
Ø 配置hbase端参数配置
这里配置跟上一步一样,也就是说hbase所有节点的hbase-site.xml也要配置这三个参数
Ø 复制tephra、tephra-env.sh到hbase的bin目录下,每一台hbase的服务器都要复制一份
这两个脚本位置在phoenix的bin目录下:
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
如果没看到错误日志,就说明启动成功:
如果有错误日志,如下:
Exception in thread "main" java.lang.NoClassDefFoundError:com/google/common/util/concurrent/Service$Listener
这里要切换一下hbase下的guava jar包版本,切换到13.0的版本
guava-13.0.1
注:三台机器都要切换,3台机器也都要确保tephra启动,启动后jps检查服务:
一切就绪,启动phoenix
Ø 启动phoenix
3、 测试
Ø 测试事务支持,关闭自动提交
Ø 测试rollback
先创建一张测试表:
CREATE TABLE my_table (k BIGINT PRIMARY KEY, v VARCHAR) TRANSACTIONAL=true;
接下来就可以测试了,如图:
成功!
备注:配置完后commit和rollback都没问题