从Apache Phoenix4.7.1升级4.8.1报错Cluster is being concurrently upgraded from 4.7.x to 4.8.x.

在CDH 5.7集群上升级Phoenix,原来是4.7.1,现在打算升级4.8.1。

步骤就按照官方文档上的说明,首先下载4.8.1的bin压缩包,解压后把server.jar(为了保险把core和client)放到hbase的lib目录下替换原有的4.7.1 jar包。CDH环境下是/opt/cloudera/parcels/CDH/lib/hbase/lib。

最后重启hbase。

 

配置文件。

将hbase的配置文件hbase-site.xml 放到phoenix/bin下,替换Phoenix原来的 配置文件。

在bin目录下运行./sqlline.py master:2181,结果出现

Cluster is being concurrently upgraded from 4.7.x to 4.8.x. Please retry establishing connection. (state=INT12,code=2010)错误。

用谷歌搜了下,结果就在Phoenix的jira上有一个patch,在4.9.0上fix了,具体地址是

https://issues.apache.org/jira/browse/PHOENIX-3174

按照他上面的说明这个是4.9.0遇到的问题,在4.8.1上按照他那两个solution都没有解决。

但确定这个是小版本升级的问题。每个版本在HBase的System.Catalog里应该会留下记录。启动时检查版本不兼容。

堆栈信息:

org.apache.phoenix.query.ConnectionQueryServicesImpl$UpgradeInProgressException: Cluster is being concurrently upgraded from 4.7.x to 4.8.x. Please retry establishing connection.
at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.acquireUpgradeMutex(ConnectionQueryServicesImpl.java:2782)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2357)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2294)
at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2294)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:232)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:147)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
at sqlline.Commands.connect(Commands.java:1064)
at sqlline.Commands.connect(Commands.java:996)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
at sqlline.SqlLine.dispatch(SqlLine.java:803)
at sqlline.SqlLine.initArgs(SqlLine.java:588)
at sqlline.SqlLine.begin(SqlLine.java:656)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:292)

没有仔细研究代码。

最后下载了个4.8.0的压缩包,用4.8.0的sqlline做client运行,连接成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值