无法使用 python phoenixdb 库连接到 phoenix

can not connect to phoenix using python phoenixdb library

我有与 HBase 集成的 Phoenix。 我正在尝试使用 pythondb 库从 python 代码访问 phoenix,并且我已经使用

启动了 QueryServer
bin/queryserver.py start

但是在连接语句之后我得到以下错误:

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

内部错误:('Cannot find parser for'、None、None、None)

这是日志中的错误:

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.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)

问题是因为我使用的是 Phoenix 4.7,即使我已经使用

启动了服务器
./bin/queryserver.py start -Dphoenix.queryserver.serialization=JSON

删除 Phoenix 4.7 并安装 4.6 后,python 的连接可以成功建立。

我希望有人会使用这个技巧:) 谢谢!