1

Details here:

All things are going ok in shell but when I try to connect hive with python throwing these errors...

Using version
Hadoop 2.7.X

Hive 2.1.X

Python 2.6 Mongo Hadoop connector

    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 is running

Error in terminal

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

Showing error in 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)

Please help in this condition :

Imran
  • 345
  • 1
  • 7
  • 19
  • have you tried this http://stackoverflow.com/questions/32140953/how-to-connect-to-hive-using-python-pyhs2 – Nirmal Ram Oct 19 '16 at 09:37
  • Yeh I had tried but error changed like 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 66, in open message=("Could not start SASL: %s" % self.sasl.getError())) thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found – Imran Oct 19 '16 at 13:34
  • which os are you using – Nirmal Ram Oct 19 '16 at 13:40
  • try http://stackoverflow.com/questions/30705576/python-cannot-connect-hiveserver2 – Nirmal Ram Oct 19 '16 at 13:46
  • i am using Centos 6.5 – Imran Oct 19 '16 at 13:55
  • sudo yum install cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain – Nirmal Ram Oct 19 '16 at 13:59
  • Thanks for your time. i had tried but now throwing same error **TSocket read 0 bytes** – Imran Oct 19 '16 at 14:04
  • check hive thrift server running netstat -nl | grep 10000 – Nirmal Ram Oct 19 '16 at 14:10
  • this command return tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN – Imran Oct 19 '16 at 14:27
  • when i just checked hiveserver logs its returns ERROR [HiveServer2-Handler-Pool: Thread-41]: server.TThreadP$ org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, $ at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtoc$ at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddress$ at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolS$ ......... – Imran Oct 20 '16 at 07:41
  • Please help : Hive error log showing this error server.TThreadPoolServer (:()) - Thrift error occurred during processing of message. – Imran Oct 20 '16 at 10:21

0 Answers0