我已经被困在这几个小时,并且无法取得任何进展。我有一个远程Hadoop实例与Hue服务器我一直在运行Hive查询。这些工作正常。我现在一直希望通过Python直接运行针对hive的查询,但这就是我出现问题的地方。我已尝试通过Python Hive Utils和pyhs2运行。前者给了我:
thrift.Thrift.TApplicationException: Invalid method name: 'get_database'
后者只是超时了。
我知道服务器正在使用0.10.0-cdh4.3.0,但我不知道如何判断它是否使用HiveServer或HiveServer2。
所以,我的问题有三个:
答案 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)