Hbase Phoenix查询服务器未返回任何结果

Hbase Phoenix查询服务器未返回任何结果,hbase,phoenix,Hbase,Phoenix,我刚刚开始在HBase上使用ApachePhoenix。我们有一个设置,当从集群节点中调用Phoenix时,Phoenix正在工作,我们可以干净地在表中进行CRUD。现在,我们需要一个在网络之外运行的应用程序,比如一个托管移动应用程序的系统能够查询Phoenix表。为此,我们正在尝试的一个选项是使用Phoenix查询服务器PQS。我已确保可以从外部网络访问端口8765,因此,当我们使用下面的CURL命令时,我们期望得到预期的结果: [root@externalsystem~]curl-XPOST

我刚刚开始在HBase上使用ApachePhoenix。我们有一个设置,当从集群节点中调用Phoenix时,Phoenix正在工作,我们可以干净地在表中进行CRUD。现在,我们需要一个在网络之外运行的应用程序,比如一个托管移动应用程序的系统能够查询Phoenix表。为此,我们正在尝试的一个选项是使用Phoenix查询服务器PQS。我已确保可以从外部网络访问端口8765,因此,当我们使用下面的CURL命令时,我们期望得到预期的结果:

[root@externalsystem~]curl-XPOST-H'请求:{request:prepareAndExecute,connectionId:000000-0000-0000-00000000,statementId:12345,sql:SELECT*FROM QUESTTWEETS1,maxRowCount:1}'

但我们得到的回应是:

{响应:executeResults,missingStatement:true,rpcMetadata:{响应:rpcMetadata,服务器地址:viper.quest.com:8765},结果:null}

我们正在使用HDP2.3.4.7-4和HBase和PQS的对齐版本


很明显,我将SQL作为请求中的一个键进行传递。有人能帮我理解我做错了什么吗?此外,由于其目标是提供一种高并发访问Phoenix表的方法,而moble应用程序可能需要这种方法,因此PQS是一个不错的解决方案还是有更好的选项来访问Phoenix表?由于我是使用HBase和Phoenix的新手,请告诉我是否需要任何其他详细信息

找到问题的答案,并在此处提供给其他新手帮助。我应该对JDBC的工作原理有更多的了解。以下是让PQS为您工作的详细步骤:

步骤1:curl-XPOST-H'请求:{request:openConnection,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:openConnection,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤2:curl-XPOST-H'请求:{request:createStatement,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:createStatement,connectionId:000000-0000-0000-00000000,statementId:1,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤3:curl-XPOST-H'请求:{request:prepareAndExecute,connectionId:000000-0000-0000-00000000,statementId:1,sql:SELECT*FROM QUESTTWEETS1,maxRowCount:-1}'URL

示例响应:包含数据的JSON

步骤4:curl-XPOST-H'请求:{request:closeStatement,connectionId:000000-0000-0000-00000000,statementId:1}'URL

示例响应:{response:closeStatement,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤5:curl-XPOST-H'请求:{request:closeConnection,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:closeConnection,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

其中URL的形式为-


希望这能有所帮助。

找到问题的答案,并在此处提供给其他新手帮助。我应该对JDBC的工作原理有更多的了解。以下是让PQS为您工作的详细步骤:

步骤1:curl-XPOST-H'请求:{request:openConnection,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:openConnection,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤2:curl-XPOST-H'请求:{request:createStatement,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:createStatement,connectionId:000000-0000-0000-00000000,statementId:1,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤3:curl-XPOST-H'请求:{request:prepareAndExecute,connectionId:000000-0000-0000-00000000,statementId:1,sql:SELECT*FROM QUESTTWEETS1,maxRowCount:-1}'URL

示例响应:包含数据的JSON

步骤4:curl-XPOST-H'请求:{request:closeStatement,connectionId:000000-0000-0000-00000000,statementId:1}'URL

示例响应:{response:closeStatement,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

步骤5:curl-XPOST-H'请求:{request:closeConnection,connectionId:000000-0000-0000-00000000}'URL

示例响应:{response:closeConnection,rpcMetadata:{response:rpcMetadata,serverAddress:viper.quest.com:8765}

其中URL的形式为-


希望这有帮助。

您可以使用jdbc与mysql一样连接到phoenix。-

您可以使用jdbc与mysql一样连接到phoenix--