2014-04-06 49 views
3

我一直被困在這個幾個小時,並且無法取得任何進展。我有Hue服務器的遠程Hadoop實例,我一直在運行Hive查詢。這些工作正常。我一直希望直接通過Python運行鍼對配置單元的查詢,但這是我的問題出現的地方。我試過Python Hive Utilspyhs2。前者給我:在Python中運行Hive查詢?

thrift.Thrift.TApplicationException: Invalid method name: 'get_database' 

後者只是超時。

我知道服務器正在使用0.10.0-cdh4.3.0,但我不知道如何判斷它是使用HiveServer還是HiveServer2。

所以,我的問題有三個方面:

  1. 我怎麼知道正在使用哪個HiveServer的版本?
  2. 這對通過Python連接來說有影響嗎?
  3. 爲什麼我無法連接?

回答

2

您可以直接使用ODBC。
在植酮:

import pyodbc 
cnxn = pyodbc.connect("DSN=XXX",autocommit=True) 
cursor = cnxn.cursor() 
cursor.execute("select * from YYY") 

XXX是先前創建的DSN ..
對於車手去here
當定義的DSN,你必須設置端口(默認10000),以及是否其HiveServer1或2.
要知道它的1或2是否需要訪問服務器並檢查該相關端口上偵聽的進程。 (netstat會給你進程號和端口號和jps -m會給你的進程號和它的HiveServer1或者2)