You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Alexander Lytchier <Al...@m800.com> on 2019/07/29 02:10:20 UTC

Phoenix Upgrade 4.7 to 4.14 - Cannot use Phoenix

Hi,

Following an update of Cloudera Manager and CDH from 5.7 to 5.14, and Phoenix from 4.7.0 (CLABS) to 4.14.0, sqlline.py is no longer working.

Apart from the upgrade of Phoenix I also created the table SYSTEM.MUTEX in HBase since it’s not used in 4.7.0, based on http://apache-phoenix-user-list.1124778.n5.nabble.com/Error-upgrading-from-from-4-7-x-to-4-13-x-td4210.html

$ ./sqlline.py localhost:2181:/hbase

Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:localhost:2181:/hbase none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:localhost:2181:/hbase
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3/lib/phoenix/phoenix-4.14.0-cdh5.14.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/jars/slf4j-log4j12-1.7.5.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]
19/07/26 17:40:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/07/26 17:40:32 WARN query.ConnectionQueryServicesImpl: Starting restore of SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011 because upgrade failed
19/07/26 17:40:37 WARN query.ConnectionQueryServicesImpl: Successfully restored SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011
19/07/26 17:40:42 WARN query.ConnectionQueryServicesImpl: Successfully restored and enabled SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011
Error: ERROR 1012 (42M03): Table undefined. tableName=MYTABLE (state=42M03,code=1012)
org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=MYTABLE
                at org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:577)
                at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:391)
                at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:383)
                at org.apache.phoenix.compile.FromCompiler.getResolver(FromCompiler.java:263)
                at org.apache.phoenix.compile.CreateIndexCompiler.compile(CreateIndexCompiler.java:50)
                at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1073)
                at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1059)
                at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:401)
                at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
                at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
                at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
                at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
                at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
                at org.apache.phoenix.util.UpgradeUtil.upgradeLocalIndexes(UpgradeUtil.java:456)
                at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemCatalogIfRequired(ConnectionQueryServicesImpl.java:2899)
                at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemTables(ConnectionQueryServicesImpl.java:3050)
                at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2584)
                at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2491)
                at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
                at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2491)
                at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
                at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
                at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
                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:38)
                at sqlline.SqlLine.dispatch(SqlLine.java:809)
                at sqlline.SqlLine.initArgs(SqlLine.java:588)
                at sqlline.SqlLine.begin(SqlLine.java:661)
                at sqlline.SqlLine.start(SqlLine.java:398)
                at sqlline.SqlLine.main(SqlLine.java:291)
sqlline version 1.2.0


I have a table MyTable in HBase, and I had a view of the HBase table in Phoenix before the upgrade.

Any suggestions?

Thanks,

Re: Phoenix Upgrade 4.7 to 4.14 - Cannot use Phoenix

Posted by Josh Elser <el...@apache.org>.
Looks like this is a bug in the system table upgrade code path which 
doesn't handle the jump from 4.7 to 4.14 correctly. This big of a 
version jump is not tested/supported in Apache.

Does CLABS give you a guarantee that this will work? It would likely be 
good to contact Cloudera support if you need help on this.

On 7/28/19 10:10 PM, Alexander Lytchier wrote:
> Hi,
> 
> Following an update of Cloudera Manager and CDH from 5.7 to 5.14, and 
> Phoenix from 4.7.0 (CLABS) to 4.14.0, sqlline.py is no longer working.
> 
> Apart from the upgrade of Phoenix I also created the table 
> /SYSTEM.MUTEX/ in HBase since it’s not used in 4.7.0, based on 
> http://apache-phoenix-user-list.1124778.n5.nabble.com/Error-upgrading-from-from-4-7-x-to-4-13-x-td4210.html
> 
> $ ./sqlline.py localhost:2181:/hbase
> 
> Setting property: [incremental, false]
> 
> Setting property: [isolation, TRANSACTION_READ_COMMITTED]
> 
> issuing: !connect jdbc:phoenix:localhost:2181:/hbase none none 
> org.apache.phoenix.jdbc.PhoenixDriver
> 
> Connecting to jdbc:phoenix:localhost:2181:/hbase
> 
> SLF4J: Class path contains multiple SLF4J bindings.
> 
> SLF4J: Found binding in 
> [jar:file:/opt/cloudera/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3/lib/phoenix/phoenix-4.14.0-cdh5.14.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> 
> SLF4J: Found binding in 
> [jar:file:/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/jars/slf4j-log4j12-1.7.5.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]
> 
> 19/07/26 17:40:07 WARN util.NativeCodeLoader: Unable to load 
> native-hadoop library for your platform... using builtin-java classes 
> where applicable
> 
> 19/07/26 17:40:32 WARN query.ConnectionQueryServicesImpl: Starting 
> restore of SYSTEM.CATALOG using snapshot 
> SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011 because upgrade 
> failed
> 
> 19/07/26 17:40:37 WARN query.ConnectionQueryServicesImpl: Successfully 
> restored SYSTEM.CATALOG using snapshot 
> SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011
> 
> 19/07/26 17:40:42 WARN query.ConnectionQueryServicesImpl: Successfully 
> restored and enabled SYSTEM.CATALOG using snapshot 
> SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.14.0_20190726174011
> 
> Error: ERROR 1012 (42M03): Table undefined. tableName=MYTABLE 
> (state=42M03,code=1012)
> 
> org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): 
> Table undefined. tableName=MYTABLE
> 
>                  at 
> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:577)
> 
>                  at 
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:391)
> 
>                  at 
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:383)
> 
>                  at 
> org.apache.phoenix.compile.FromCompiler.getResolver(FromCompiler.java:263)
> 
>                  at 
> org.apache.phoenix.compile.CreateIndexCompiler.compile(CreateIndexCompiler.java:50)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1073)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateIndexStatement.compilePlan(PhoenixStatement.java:1059)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:401)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
> 
>                  at 
> org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
> 
>                  at 
> org.apache.phoenix.util.UpgradeUtil.upgradeLocalIndexes(UpgradeUtil.java:456)
> 
>                  at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemCatalogIfRequired(ConnectionQueryServicesImpl.java:2899)
> 
>                  at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemTables(ConnectionQueryServicesImpl.java:3050)
> 
>                  at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2584)
> 
>                  at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2491)
> 
>                  at 
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
> 
>                  at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2491)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
> 
>                  at 
> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
> 
>                  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:38)
> 
>                  at sqlline.SqlLine.dispatch(SqlLine.java:809)
> 
>                  at sqlline.SqlLine.initArgs(SqlLine.java:588)
> 
>                  at sqlline.SqlLine.begin(SqlLine.java:661)
> 
>                  at sqlline.SqlLine.start(SqlLine.java:398)
> 
>                  at sqlline.SqlLine.main(SqlLine.java:291)
> 
> sqlline version 1.2.0
> 
> 
> I have a table /MyTable/ in HBase, and I had a /view/ of the HBase table 
> in Phoenix before the upgrade.
> 
> Any suggestions?
> 
> Thanks,
>