在Python中运行Hive查询?

时间:2014-04-06 21:22:39

标签: python hadoop hive

我已经被困在这几个小时,并且无法取得任何进展。我有一个远程Hadoop实例与Hue服务器我一直在运行Hive查询。这些工作正常。我现在一直希望通过Python直接运行针对hive的查询,但这就是我出现问题的地方。我已尝试通过Python Hive Utilspyhs2运行。前者给了我:

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

后者只是超时了。

我知道服务器正在使用0.10.0-cdh4.3.0,但我不知道如何判断它是否使用HiveServer或HiveServer2。

所以,我的问题有三个:

  1. 我如何知道正在使用哪个版本的HiveServer?
  2. 通过Python连接是否重要?
  3. 为什么我无法连接?

1 个答案:

答案 0 :(得分:2)

您可以改用ODBC 在phyton:

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)