我有与HBase集成的Phoenix。 我试图使用pythondb库从python代码访问phoenix,我已经使用
启动了QueryServerbin/queryserver.py start
但是在连接语句之后我收到以下错误:
database_url = 'http://localhost:8765/'
conn = phoenixdb.connect(database_url, autocommit=True)
内部错误:('找不到解析器',无,无,无)
这是日志中的错误:
2016-08-10 14:24:07,987 WARN org.eclipse.jetty.server.HttpChannel:/ java.lang.IllegalArgumentException:无法找到at的解析器 org.apache.calcite.avatica.remote.ProtobufTranslationImpl.getParserForRequest(ProtobufTranslationImpl.java:182) 在 org.apache.calcite.avatica.remote.ProtobufTranslationImpl.parseRequest(ProtobufTranslationImpl.java:239) 在 org.apache.calcite.avatica.remote.ProtobufHandler.decode(ProtobufHandler.java:42) 在 org.apache.calcite.avatica.remote.ProtobufHandler.decode(ProtobufHandler.java:28) 在 org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:95) 在 org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38) 在 org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68) 在 org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 在org.eclipse.jetty.server.Server.handle(Server.java:497)处 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)at at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) 在 org.eclipse.jetty.io.AbstractConnection $ 2.run(AbstractConnection.java:540) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 在 org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:555) 在java.lang.Thread.run(Thread.java:745)
答案 0 :(得分:1)
问题是因为我使用的是Phoenix 4.7,即使我已经使用
启动了服务器./bin/queryserver.py start -Dphoenix.queryserver.serialization=JSON
删除Phoenix 4.7并安装4.6后,可以成功建立python连接。
我希望有人会使用这个提示:) 谢谢!