2016-09-10 156 views
0

我剛開始在HBase上使用Apache Phoenix。我們有一個設置,Phoenix在集羣節點內調用時工作(我們可以乾淨地在表格中CRUD)。現在,我們希望在網絡之外運行的應用程序(比如託管移動應用程序的系統)能夠查詢Phoenix表。爲此,我們正在嘗試的一個選項是使用Phoenix Query Server(PQS)。我已確保的端口8765是從外部網絡訪問等,當我們使用下面CURL命令,我們期望所需的結果:Phoenix Query Server不返回任何結果

[根@ externalsystem〜]#捲曲-XPOST -H「請求:{ 「request」:「prepareAndExecute」,「connectionId」:「000000-0000-0000-00000000」,「statementId」:12345,「sql」:「SELECT * FROM QUESTTWEETS1」,「maxRowCount」:1}'http://here.comes.external.ip:8765/

但我們得到的迴應是:

{ 「迴應」: 「executeResults」, 「missingStatement」:真實的,「rpcMetad ATA 「:{」 迴應 「:」 rpcMetadata 「 」serverAddress「:」 viper.quest.com:8765"},"results":null}

我們正在使用HDP 2.3.4.7-4和對齊HBase和PQS版本。

很清楚,我將SQL作爲請求中的一個鍵傳遞。有人能幫我理解我在這裏做錯了什麼嗎?另外,因爲這樣做的目的是提供一種以高併發性訪問鳳凰表的方法(哪些moble應用可以要求),PQS是一個體面的解決方案還是有更好的選擇來訪問Phoenix表?由於我是使用HBase和Phoenix的新手,請告訴我是否需要其他細節。

回答

1

找到了問題的答案,並將其提供給其他任何新朋友的幫助。我應該更多地瞭解JDBC如何工作。以下是獲得PQS爲你工作的具體步驟:

第1步:捲曲-XPOST -H的要求:{ 「請求」: 「的openConnection」, 「的ConnectionId」:「000000-0000-0000-00000000 「}」 URL

示例響應:{ 「響應」: 「的openConnection」, 「rpcMetadata」:{ 「響應」: 「rpcMetadata」, 「serverAddress」: 「viper.quest.com:8765」}}

步驟2:捲曲-XPOST -H '請求:{ 「請求」: 「的createStatement」, 「的ConnectionId」: 「000000-0000-0000-00000000」}' URL

示例響應:{ 「響應」: 「的createStatement」 「connectionId」:「000000-0000-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:捲曲-XPOST -H' 請求:{ 「請求」: 「closeStatement」, 「的ConnectionId」 :「000000-0000-0000-00000000」,「statementId」:1}'URL

示例響應:{「response」 : 「closeStatement」, 「rpcMetadata」:{ 「響應」: 「rpcMetadata」, 「serverAddress」:「viper.quest。COM:8765" }}

步驟5:捲曲-XPOST -H '請求:{ 「請求」: 「closeConnection」, 「的ConnectionId」: 「000000-0000-0000-00000000」}' URL

樣本響應:{ 「迴應」: 「closeConnection」, 「rpcMetadata」:{ 「迴應」: 「rpcMetadata」, 「serverAddress」: 「viper.quest.com:8765」}}

其中URL是的形式 - http://external.ip.of.pqs:8765/

希望這有助於