0

I have Phoenix which is integrated with HBase. I am trying to access phoenix from python code using pythondb library, and I have started the QueryServer using

bin/queryserver.py start

But after the connect statement I get the following error:

database_url = 'http://localhost:8765/'
conn = phoenixdb.connect(database_url, autocommit=True)

InternalError: ('Cannot find parser for', None, None, None)

and this is the error from log:

2016-08-10 14:24:07,987 WARN org.eclipse.jetty.server.HttpChannel: / java.lang.IllegalArgumentException: Cannot find parser for at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.getParserForRequest(ProtobufTranslationImpl.java:182) at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.parseRequest(ProtobufTranslationImpl.java:239) at org.apache.calcite.avatica.remote.ProtobufHandler.decode(ProtobufHandler.java:42) at org.apache.calcite.avatica.remote.ProtobufHandler.decode(ProtobufHandler.java:28) at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:95) 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)

Aboulfouz
  • 98
  • 8

1 Answers1

1

The problem was because I was using Phoenix 4.7 even I have started the server using

./bin/queryserver.py start -Dphoenix.queryserver.serialization=JSON

After remove Phoenix 4.7 and install 4.6 the connection from python can be established successfully.

I hope someone will use this tip :) Thanks!

Aboulfouz
  • 98
  • 8