Hive - 与python错误的连接

时间:2016-10-19 08:02:13

标签: python mongodb hadoop hive

此处详细信息:

shell中的所有内容都没问题,但是当我尝试使用python连接hive时抛出这些错误......

  

使用版本
  Hadoop 2.7.X

     

Hive 2.1.X

     

Python 2.6   Mongo Hadoop连接器

    import pyhs2

    with pyhs2.connect(host='hadoop-master',
                   port=10000,
                   authMechanism="PLAIN",
                   user='hadoop_user',
                   password='iudev',
                   database='default'
                   ) as conn:
        with conn.cursor() as cur:
            #Show databases
            print cur.getDatabases()

            #Execute query
            cur.execute("select * from table")

            #Return column info from query
            print cur.getSchema()

            #Fetch table results
            for i in cur.fetch():
            print i

hiveServer2正在运行

终端错误

Traceback (most recent call last):
  File "/usr/local/py/test4.py", line 8, in <module>
    database='default'
  File "/usr/lib/python2.6/site-packages/pyhs2/__init__.py", line 7, in connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyhs2/connections.py", line 46, in __init__
    transport.open()
  File "/usr/lib/python2.6/site-packages/pyhs2/cloudera/thrift_sasl.py", line 74, in open
    status, payload = self._recv_sasl_message()
  File "/usr/lib/python2.6/site-packages/pyhs2/cloudera/thrift_sasl.py", line 92, in _recv_sasl_message
    header = self._trans.readAll(5)
  File "/usr/lib64/python2.6/site-packages/thrift/transport/TTransport.py", line 58, in readAll
    chunk = self.read(sz - have)
  File "/usr/lib64/python2.6/site-packages/thrift/transport/TSocket.py", line 120, in read
    message='TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

在hive.log中显示错误

ERROR [HiveServer2-Handler-Pool: Thread-41]: server.TThreadPoolServer (:()) - Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?
    at    org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228)
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
2016-10-20T15:17:45,219 ERROR [HiveServer2-Handler-Pool: Thread-42]:   server.TThreadPoolServer (:()) - Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Missing version in  readMessageBegin, old client?
    at   org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228)
    at  org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286)
    at  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

请在这种情况下提供帮助:

0 个答案:

没有答案