중화사전망 - 서예자전 - 파이썬 연결 hive, thrifthive 설치 방법 ?

파이썬 연결 hive, thrifthive 설치 방법 ?

HiveServer2 시작

HiveServer2 를 시작합니다

HiveServer2 부팅 용이:

$ $HIVE_HOME/bin/hiveserver2

또는

$ $ hive _ home/bin/hive-servicehiveserver2

기본적으로 HiverServer2 의 Thrift 수신 포트는 10000 이고 웹 ui 포트는 10002 입니다. Hive 에 대한 몇 가지 기본 정보를 보여주는 http://localhost: 10002 를 통해 HiveServer2 의 웹 ui 인터페이스를 볼 수 있습니다. 웹 인터페이스를 볼 수 없는 경우 HiveServer2 가 성공적으로 실행되지 않은 것입니다.

직선을 사용하여 클라이언트 연결을 테스트합니다.

HiveServer2 가 성공적으로 실행되면 Hive 에서 제공하는 클라이언트 도구인 beeline 을 사용하여 HiveServer2 에 연결할 수 있습니다.

$ $HIVE_HOME/bin/beeline

선>! Jdbc 연결: hive2://localhost:10000

로그인에 성공하면 다음 명령 프롬프트가 나타납니다. 이때 HQL 보고서를 작성할 수 있습니다.

0: JDBC: hive2://localhost:10000 >

오류: 사용자: XXX 는 익명 에뮬레이션을 허용하지 않습니다.

직선은 그것을 사용한다! Connect 가 HiveServer2 에 연결될 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

원인: org.apache.hadoop.ipc.remoteexception:

사용자: XXX 는 익명 모방을 허용하지 않습니다

Xxx 는 내 운영 체제 사용자 이름입니다. 이 문제를 해결하려면 Hadoop 의 core-size.xml 파일에 XXX 사용자 에이전트 구성을 추가합니다.

& lt 등록 정보> & ltname & gthadoop.proxyuser.xxx.groups < /name > & lt 값>* & lt/value & gt;; & lt/property & gt;; & lt 등록 정보> & ltname & gthadoop.proxyuser.xxx.hosts < /name > & lt 값>* & lt/value & gt;; & lt/property & gt;;

HDFS 를 다시 시작한 후 성공적으로 연결하기 위해 HiveServer2 를 beeline 에 연결합니다.

공통 구성

HiveServer2 구성에 대해서는 공식 문서 설정 HiveServer2 를 참조하십시오.

다음은 hive-site.xml 에 대한 몇 가지 일반적인 구성입니다.

Hive.server2.thrift.port: 수신할 TCP 포트 번호입니다. 기본값은 10000 입니다.

Hive.server2.thrift.bind.host: TCP 인터페이스의 바인딩 호스트입니다.

Hive.server2.authentication: 인증 방법. 기본값은 없음 (일반 SASL 사용) 입니다. 즉, 유효성 검사가 수행되지 않습니다. 기타 옵션은 NOASL, Kerberos, LDAP, PAM 및 custom 입니다.

Hive.server2.enable.doAs: 질의 처리를 시뮬레이션으로 실행할지 여부. 기본값은 true 입니다.

파이썬 클라이언트 연결 HiveServer2

파이썬에는 pyhs2, pyhive, impyla 등 HiveServer2: pyhs2 에 연결하는 세 개의 클라이언트가 있습니다. 공식 홈페이지의 예는 pyhs2 를 사용하지만, pyhs2 의 공식 홈페이지는 더 이상 지원이 없다고 선언했습니다. impyla 와 pyhive 를 사용하는 것이 좋습니다. 우리는 여기서 영피라를 사용한다.

영피라를 설치하다

Impyla 에 필요한 종속성은 다음과 같습니다.

여섯;육

비트 배열

검소하다 (파이썬 2.x 는 검소하다)

Hive 를 지원하려면 다음 두 가지 패키지가 필요합니다.

Sasl

검소한 _sasl

Python PI 에서 impyla 및 종속 패키지의 소스 코드를 다운로드할 수 있습니다.

Impyla 예

다음은 impyla 를 사용하여 HiveServer2 에 연결하는 예입니다.

Impala.dbapi 에서 연결 가져오기

Conn = connect (host ='127.0.0.1',port= 10000)

Cur = conn.cursor ()

Cur.execute ('show databases') print (cur.fetchall ())

Cur.execute ('show tables') print (cur.fetchall ())