通过:hiveserver2-client.py连接到配置单元时发生套接字错误

3zwtqj6y  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(321)

以前是否有人在尝试连接到配置单元时遇到过此错误。
使用的示例代码(https://github.com/telefonicaid/fiware-cygnus/blob/master/cygnus-ngsi/resources/hiveclients/python/hiveserver2-client.py):

import sys
import pyhs2
from pyhs2.error import Pyhs2Exception

# get the input parameters

if len(sys.argv) != 6:
    print 'Usage: python hiveserver2-client.py <hive_host> <hive_port> <db_name> <hadoop_user> <hadoop_password>'
    sys.exit()

hiveHost = sys.argv[1]
hivePort = sys.argv[2]
dbName = sys.argv[3]
hadoopUser = sys.argv[4]
hadoopPassword = sys.argv[5]

# do the connection

with pyhs2.connect(host=hiveHost,
                   port=hivePort,
                   authMechanism="PLAIN",
                   user=hadoopUser,
                   password=hadoopPassword,
                   database=dbName) as conn:
    # get a client
    with conn.cursor() as client:
        # create a loop attending HiveQL queries
        while (1):
            query = raw_input('remotehive> ')

            try:
                if not query:
                    continue

                if query == 'exit':
                    sys.exit()

                # execute the query
                client.execute(query)

                # get the content
                for row in client.fetch():
                    print row

            except Pyhs2Exception, ex:
                print ex.errorMessage

显示错误:

[centos@test]$ sudo python hiveserver2-client.py computing.cosmos.lab.fiware.org 10000 default USERNAME TOKEN
Traceback (most recent call last):
  File "hiveserver2-client.py", line 42, in <module>
    database=dbName) as conn:
  File "/usr/lib/python2.7/site-packages/pyhs2/__init__.py", line 7, in connect
    return Connection(*args,**kwargs)
  File "/usr/lib/python2.7/site-packages/pyhs2/connections.py", line 46, in __init__
    transport.open()
  File "/usr/lib/python2.7/site-packages/pyhs2/cloudera/thrift_sasl.py", line 74, in open
    status, payload = self._recv_sasl_message()
  File "/usr/lib/python2.7/site-packages/pyhs2/cloudera/thrift_sasl.py", line 92, in _recv_sasl_message
    header = self._trans.readAll(5)
  File "/usr/lib/python2.7/site-packages/thrift/transport/TTransport.py", line 60, in readAll
    chunk = self.read(sz - have)
  File "/usr/lib/python2.7/site-packages/thrift/transport/TSocket.py", line 132, in read
    message='TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
56lgkhnf

56lgkhnf1#

你能把你的代码贴出来吗?看起来某些身份验证机制或发送的凭据无效。 authMechanism= can be "PLAIN" or "KERBEROS" 根据你的设置。

相关问题