James, I'm trying to evaluate the new RC4. I built rpms from current master and then installed the artifacts. as you may know, my env was installed RC2, that is, I'm upgrading to RC4 from RC2. Unfortunately when I try to connect to Phoenix through QueryServer after restarting HBase and QueryServer, I'm stuck in errors from RC4 as follows:
java.lang.RuntimeException: java.sql.SQLException: ERROR 1015 (42J04): Cannot add column to table when the last PK column is of type VARBINARY or ARRAY. columnName=GUIDE_POST_KEY at org.apache.calcite.avatica.jdbc.JdbcMeta.openConnection(JdbcMeta.java:585) at org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:263) at org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1642) at org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1625) at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:102) at org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38) at org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:497) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLException: ERROR 1015 (42J04): Cannot add column to table when the last PK column is of type VARBINARY or ARRAY. columnName=GUIDE_POST_KEY at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:422) at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145) at org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2625) at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1021) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:338) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:326) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:325) at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1326) at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:2214) at org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:2242) at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:211) at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2440) at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2248) at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78) at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2248) at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:233) at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:135) at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:187) at org.apache.calcite.avatica.jdbc.JdbcMeta.openConnection(JdbcMeta.java:582) ... 15 more Looks like upgrading the SYSTEM tables does not work for my case. the 'GUIDE_POST_KEY' column already exists. After that, I removed the SYSTEM.STATS table to connect Phoenix: - Disable the SYSTEM.STATS from HBase shell - Drop the SYSTEM.STATS on HBase - Delete rows related SYSTEM.STATS from SYSTEM.CATALOG Removing the SYSTEM.STATS table solves the connection problem. As of now, I can connect Phoenix in using QueryServer and also can run MR-based bulkload! but another problem popped up. I expected that when I run 'UPDATE STATISTICS' statement, Phoenix will create new SYSTEM.STATS table because there is no SYSTEM.STATS on HBase and Phoenix CATALOG but updating statistics fails: java.lang.RuntimeException: org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS at org.apache.calcite.avatica.jdbc.JdbcMeta.propagate(JdbcMeta.java:651) at org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:715) at org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:186) at org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:868) at org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:842) at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:102) at org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38) at org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:497) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS at org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:414) at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:285) at org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:186) at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:392) at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:373) at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:266) at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:261) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:260) at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1313) at org.apache.phoenix.schema.MetaDataClient.updateStatisticsInternal(MetaDataClient.java:919) at org.apache.phoenix.schema.MetaDataClient.updateStatistics(MetaDataClient.java:857) at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpdateStatisticsStatement$1.execute(PhoenixStatement.java:994) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:338) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:326) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:325) at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1345) at org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:695) ... 15 more Updating the statistics creates SYSTEM.STATS table on HBase but does not update SYSTEM.CATALOG so I run into a problem like above. I'm stuck in this status. Should I create the SYSTEM.STATS manually? if yes, please point me out the DDL for the STATS table. IMO, It would be nice to have the way upgrading SYSTEM.STATS gracefully (and sometimes manually) At this point, Should I downgrade the system catalogs? Is it possible? If not, Can I create the SYSTEM.STATS table manually? Thanks, Youngwoo On Tue, Mar 1, 2016 at 5:11 AM, James Taylor <[email protected]> wrote: > Hello Everyone, > > This is a call for a vote on Apache Phoenix 4.7.0-HBase-1.1 RC4. This is > the next minor release of Phoenix 4, compatible with Apache HBase 1.1+. The > release includes both a source-only release and a convenience binary > release. > > This release has feature parity with our other pending 4.7.0 releases and > includes the following improvements: > - ACID transaction support (beta) [1] > - Statistics improvements [2][3][4] > - Performance improvements [5][6][7] > - 200+ other fixes/enhancements [8] > > The previous RC was sunk due to PHOENIX-2716 which is fixed in this RC > (along with a number of others since the initial RC [9]). > > The source tarball, including signatures, digests, etc can be found at: > > https://dist.apache.org/repos/dist/dev/phoenix/phoenix-4.7.0-HBase-1.1-rc4/src/ > > The binary artifacts can be found at: > > https://dist.apache.org/repos/dist/dev/phoenix/phoenix-4.7.0-HBase-1.1-rc4/bin/ > > For a complete list of changes, see: > > https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315120&version=12333998 > > Release artifacts are signed with the following key: > https://people.apache.org/keys/committer/mujtaba.asc > https://dist.apache.org/repos/dist/release/phoenix/KEYS > > The hash and tag to be voted upon: > > https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=commit;h=58cf5fa2d2e147780258a1e88c79898fc199d61e > > https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=tag;h=refs/tags/v4.7.0-HBase-1.1-rc4 > > Vote will close on Thursday, March 3rd @ 5pm PST. Please vote: > > [ ] +1 approve > [ ] +0 no opinion > [ ] -1 disapprove (and reason why) > > Thanks, > The Apache Phoenix Team > > [1] https://phoenix.apache.org/transactions.html > [2] https://issues.apache.org/jira/browse/PHOENIX-2430 > [3] https://issues.apache.org/jira/browse/PHOENIX-2702 > [4] https://issues.apache.org/jira/browse/PHOENIX-2692 > [5] https://issues.apache.org/jira/browse/PHOENIX-1428 > [6] https://issues.apache.org/jira/browse/PHOENIX-2377 > [7] https://issues.apache.org/jira/browse/PHOENIX-2520 > [8] https://issues.apache.org/jira/issues/?filter=12334876 > [9] https://issues.apache.org/jira/issues/?filter=12334875 >
