如何使用python pyhs2连接到配置单元?

编程入门 行业动态 更新时间:2024-10-25 06:21:49
本文介绍了如何使用python pyhs2连接到配置单元?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我尝试使用 pyhs2 访问配置单元。我尝试了下面的代码:

example.py

import pyhs2 conn = pyhs2.connect(host ='localhost',port = 10000,authMechanism = None,user = None,password = None,database ='default') with conn.cursor()as : cur.execute(select * from table) for i in cur.fetch(): print i

我得到以下错误:

Traceback(最近的调用最后):在< module>文件中的example.py,第2行, conn = pyhs2.connect(host ='localhost',port = 10000,authMechanism = None,user = None,password = None,database ='default')文件build / bdist.linux-x86_64 / egg / pyhs2 / __ init__.py,第7行,连接文件build / bdist.linux-x86_64 / egg / pyhs2 / connections.py,第46行,在__init__ 文件build / bdist。 linux-x86_64 / egg / pyhs2 / cloudera / thrift_sasl.py,第55行,打开文件build / bdist.linux-x86_64 / egg / thrift / transport / TSocket.py,第101行,打开 thrift.transport.TTransport.TTransportException:无法连接到localhost:10000

我是当我尝试使用配置单元实用程序时得到确切的错误。我检查了sasl安装。我是否需要对配置单元中的hive-site.xml进行任何更改?如果是,我需要在哪里创建它?我错过了什么?

解决方案

找出本地主机的IP地址(在Linux上):

主机名-I

2-将localhost更改为实际ip

我还建议您仔细检查Hive所在的主机。如果您在Ambari上使用hortonworks,请转至 Hive ,然后 Configs ,并在那里检查主机。

修改(增加另一个建议):您的用户名和密码最有可能不是无。要获取用户名和密码,请检查 hive-site.xml 并查看中的值javax.jdo.option.ConnectionUserName 和 javax.jdo.option.ConnectionPassword 。如果找不到任何东西,请尝试使用空字符串作为密码(而不是无),并将 hive 或空字符串作为用户名,即逐个尝试: $ b

conn = pyhs2.connect(host ='localhost',port = 10000,authMechanism ='PLAIN',user ='hive',password ='',database ='default')

conn = pyhs2.connect(host ='localhost', port = 10000,authMechanism ='PLAIN',user ='',password ='',database ='default')

我还将 authMechanism 更改为PLAIN

I am trying to access hive using pyhs2. I tried the following code:

example.py

import pyhs2 conn = pyhs2.connect(host='localhost', port=10000,authMechanism=None, user=None, password=None,database='default') with conn.cursor() as cur: cur.execute("select * from table") for i in cur.fetch(): print i

I am getting the following error:

Traceback (most recent call last): File "example.py", line 2, in <module> conn = pyhs2.connect(host='localhost', port=10000,authMechanism=None, user=None, password=None,database='default') File "build/bdist.linux-x86_64/egg/pyhs2/__init__.py", line 7, in connect File "build/bdist.linux-x86_64/egg/pyhs2/connections.py", line 46, in __init__ File "build/bdist.linux-x86_64/egg/pyhs2/cloudera/thrift_sasl.py", line 55, in open File "build/bdist.linux-x86_64/egg/thrift/transport/TSocket.py", line 101, in open thrift.transport.TTransport.TTransportException: Could not connect to localhost:10000

I am getting the exact error when I try with hive utils. I have checked sasl installation. Do I need to make any changes to the hive-site.xml in hive? If yes where do I need to create it? Am I missing out something?

解决方案

1- Figure out the IP address of the localhost using (on Linux):

hostname -I

2- Change localhost to the actual ip

I would also suggest that you double check which host Hive is on. If you are using hortonworks, on Ambari, go to Hive, then Configs and check the host there.

Edit (adding another suggestion):

Your username and password most likely aren't None. To get your username and password, check hive-site.xml and look at the values in javax.jdo.option.ConnectionUserName and javax.jdo.option.ConnectionPassword. If you can't find anything, try an empty string as the password (as opposed to None), and hive or empty string as the username i.e. try these one by one:

conn = pyhs2.connect(host='localhost', port=10000,authMechanism='PLAIN', user='hive', password='',database='default')

conn = pyhs2.connect(host='localhost', port=10000,authMechanism='PLAIN', user='', password='',database='default')

Note that I also changed authMechanism to "PLAIN"

更多推荐

如何使用python pyhs2连接到配置单元?

本文发布于:2023-11-23 21:08:34,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接到   如何使用   单元   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!