본문 바로가기
프로그래밍/python

Python hive Client 설정

by W.C. 2016. 3. 30.
728x90

Python 으로 Hiveserver Client 개발을 하려고 한다.


우선 적으로 확인 해보니 일단 python version이 2.6


업데이트가 필요한 상황이다!


우선 Python CentOS 6.7에서 python 2.7로 업데이트 하는 방법!!


=> yum update

=> yum install centos-release-SCL

=> yum install python27

=> scl enable python27 bash

=> cd /opt/rh/python27/root/usr/bin/ # cd to the directory where SCL installs python

=> sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./easy_install-2.7 pip

=> sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./pip2.7 install requests 


위와 같은 단계를 진행하면 된다.


참고 사이트

http://stackoverflow.com/questions/23215535/how-to-install-python27-devel-on-centos-6-5

https://gist.github.com/dalegaspi/dec44117fa5e7597a559


이제 hive 공식 문서에 있는 pyhs2를 설치 해보자!


=> pip install pyhs2

참고> 설치 오류

sudo yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64

=> Hive Wiki 나와 잇는 python hive Client


그런데 설치 하고 보니 pyhs2 github에 가면 더 이상 개발 안 한다고 다른 것을 추천해 준다.


https://github.com/BradRuderman/pyhs2

Impyla pyhive




워매... 기껏 설치하고 보니... 다른 거를 써야 한다니.. 쩝..


일단 난 pyhive를 사용 하기로 했다.


https://github.com/dropbox/PyHive


위 사이트를 참고로 설치 하면 된다.


==================================================

import pyhs2


with pyhs2.connect(host='10.10.82.223',

                   port=10000,

                   authMechanism="PLAIN",

                   user='root',

                   password='',

                   database='default') as conn:

    with conn.cursor() as cursor:

        print cursor.getDatabases()


        cursor.execute("select * from table limit 100")


        print cursor.getSchema()


        for i in cursor.fetch():

            print i[0]

====================================================


참고로  위 소스 작동 잘 된다 굿!