2011-07-20 69 views
0

我想將HIVE作爲Web服務公開,以便我的PHP程序可以調用Web服務以在UI中顯示輸出。我不確定如何在HIVE中做到這一點。作爲Web服務的Apache HIVE工作

+0

是否要顯示Hive作業已經運行或提交請求的進度並等待結果?如果是第二個,你就會在錯誤的樹上吠叫。 Hive請求會生成MapReduce作業,有時每個請求都有幾個。即使它處理一行數據,也很容易需要30秒來設置和運行MapReduce作業。 – Olaf

+0

謝謝奧拉夫。 我的要求是訪問PHP的Hive查詢。我想知道是否可以通過Web服務訪問Hive。 – Kartik

回答

3

Hive有一個JDBC驅動程序。它僅支持JDBC API和SQL語法的一個子集。這些限制是由Hive的功能定義的。 Hive更適合批處理命令,例如過濾大量數據的大部分子集,可能與其他Hive表連接。儘管如此,使用JDBC你可以想象通過Web服務訪問Hive數據。您可能會考慮創建異步Web服務。如果您要在同步Web服務調用中訪問Hive,請確保您的超時時間足夠容納運行Hive命令所需的時間。

+0

謝謝奧拉夫。我也將HBase視爲Hive StorageHandler。所有的數據分析都是離線執行的,並且最終數據存儲在HBase中。應用程序可以查詢HBase以在UI中顯示數據。有沒有更好的方法。 – Kartik

+0

@Kartik:我看到在HBase和Web UI之間安裝了一個內存緩存。 – Olaf