2014-04-06 44 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)