python访问hive

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# hive util with hive server2

"""
@author:
@create:
"""

__author__ = 'knktc'
__version__ = '0.1'

import pyhs2

class HiveClient:
    def __init__(self, db_host, user, password, database, port=10000, authMechanism="PLAIN"):
        """
        create connection to hive server2
        """
        self.conn = pyhs2.connect(host=db_host,
                                  port=port,
                                  authMechanism=authMechanism,
                                  user=user,
                                  password=password,
                                  database=database
                                  )

    def query(self, sql):
        """
        query
        """
        with self.conn.cursor() as cursor:
            cursor.execute(sql)
            return cursor.fetch()

    def close(self):
        """
        close connection
        """
        self.conn.close()


def main():
    """
    main process
    @rtype:
    @return:
    @note:

    """
    hive_client = HiveClient(db_host='127.0.0.1', port=10086, user='', password='',                            database='db', authMechanism='PLAIN')
    print hive_cient.getDatabases()
    result = hive_client.query("select * from test_db t where t.dt = '2017-03-01' limit 1")
    print result
    hive_client.close()


if __name__ == '__main__':
    main()

  

 

windows下32位没成功,报错(64位可以http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载 

  File "build\bdist.win32\egg\pyhs2\cloudera\thrift_sasl.py", line 66, in open
thrift.transport.TTransport.TTransportException: Could not start SASL: Error in
sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callba
python -m pip install -U pip
python -m pip install pyOpenSSL

https://pypi.python.org/pypi/pyhs2

python -m pip install sasl

http://aka.ms/vcpython27

python -m pip install sasl-0.2.1-cp27-cp27m-win32.whl
python -m pip install thrift-0.10.0-cp27-cp27m-win32.whl

linux安装

pyhs2,cyrus-sasl(cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi),gcc,libxml2-devel,libxslt-devel

 

点赞