[Hive] HiveServer 2 개요
3666 단어 Hive
Hive Server 는 원 격 클 라 이언 트 가 각종 프로 그래 밍 언어 로 Hive 에 요청 하고 결 과 를 검색 할 수 있 도록 선택 할 수 있 는 서비스 입 니 다.HiveServer 는 Apache ThriftTM (http://thrift.apache.org/) 위 에 있 는 것 이기 때문에 때로는 Thrift Server 라 고 불 릴 수 있 습 니 다. 이 는 새로운 서비스 인 Hive Server 2 도 Thrift 위 에 세 워 졌 기 때 문 입 니 다. Hive Server 2 가 도 입 된 후부 터 Hive Server 도 Hive Server 1 이 라 고 불 립 니 다.
경고 하 다.
HiveServer 는 여러 클 라 이언 트 의 동시 요청 을 처리 할 수 없습니다. 이것 은 사실상 HiveServer 가 내 보 낸 Thrift 인터페이스 에 가해 진 제한 이 며, HiveServer 소스 코드 를 수정 해서 해결 할 수 없습니다.
Hive Server 2 는 Hive Server 를 재 작성 하여 이러한 문 제 를 해결 하 였 으 며, Hive 0.11.0 버 전부터 시작 하 였 다.Hive Server 2 를 사용 하 는 것 을 권장 합 니 다.
Hive 1.0.0 버 전 (이전 에는 0.14.1 버 전) 부터 Hive Server 가 삭제 되 기 시작 했다.Hive Server 2 로 전환 하 십시오.
2. HiveServer2
2.1 도입
Hive Server 2 (HS2) 는 클 라 이언 트 가 Hive 조 회 를 수행 할 수 있 는 서비스 입 니 다.Hive Server 2 는 Hive Server 1 의 개선 판 으로 Hive Server 1 이 폐기 되 었 습 니 다.Hive Server 2 는 다 중 클 라 이언 트 병행 과 인증 을 지원 할 수 있 습 니 다.API 클 라 이언 트 (예 를 들 어 JDBC 와 ODBC) 를 개방 하 는 데 더 좋 은 지원 을 제공 하기 위 한 것 입 니 다.
HiveServer 2 단일 프로 세 스 가 실행 되 며 Thrift 기반 Hive 서비스 (TCP 또는 HTTP) 와 웹 UI 에 사용 되 는 Jetty 웹 서버 를 포함 하여 조합 서 비 스 를 제공 합 니 다.
2.2 구조
Thrift 기반 Hive 서 비 스 는 Hive Server 2 의 핵심 으로 Hive 조회 (예 를 들 어 Beeline 에서) 를 유지 하 는 것 을 책임 집 니 다.Thrift 는 크로스 플랫폼 서 비 스 를 구축 하 는 RPC 프레임 워 크 다.그 창 고 는 서버, Transport, Protocol, 프로세서 등 4 층 으로 구성 되 어 있다.있다 https://thrift.apache.org/docs/concepts 레이 어 링 에 대한 더 자세 한 정 보 를 찾 습 니 다.
2.2.1 Server
HiveServer 2 는 TCP 모드 에서 TThreadPoolServer (Thrift 에서 온 것) 를 사용 하고 HTTP 모드 에서 Jetty Server 를 사용 합 니 다.
TThread PoolServer 는 모든 TCP 연결 에 작업 스 레 드 를 할당 합 니 다.연결 이 비어 있 더 라 도 모든 스 레 드 는 연결 과 연결 되 어 있 습 니 다.따라서 대량의 동시 연결 로 인해 대량의 스 레 드 가 발생 하여 잠재 적 인 성능 문 제 를 초래한다.앞으로 HiveServer 2 는 TCP 모드 의 다른 유형의 서버 로 전환 할 수 있 습 니 다. 예 를 들 어 TThreaded Selector Server.
2.2.2 Transport
클 라 이언 트 와 서버 사이 에 프 록 시가 필요 하 다 면 (예 를 들 어 부하 균형 이나 안전 상의 이유 로) HTTP 모드 가 필요 합 니 다.TCP 모드 와 같은 지원 을 받 는 이유 다.Hive 설정 속성
hive.server2.transport.mode
을 통 해 Thrift 서비스의 전송 모드 를 지정 할 수 있 습 니 다.2.2.3 Protocol
협의 책임 의 서열 화 와 반 서열 화.Hive Server 2 는 현재 Thrift 프로 토 콜 로 서열 화
TBinaryProtocol
하고 있다.앞으로 TCompactprotocol 과 같은 다른 프로 토 콜 을 더 많이 고려 할 수 있 고 더 많은 성능 평 가 를 고려 할 수 있 습 니 다.2.2.4 프로세서
처리 프로 세 스 는 요청 을 처리 하 는 응용 프로그램의 논리 입 니 다.예 를 들 어
ThriftCLIService.ExecuteStatement()
방법 은 Hive 조 회 를 컴 파일 하고 집행 하 는 논 리 를 실현 했다.2.3 의존
3. JDBC Client
JDBC 드라이버 를 사용 하여 클 라 이언 트 와 HiveServer 2 가 상호작용 을 하도록 추천 합 니 다.JDBC 대신 Thrift 클 라 이언 트 를 직접 사용 하 는 사례 (예 를 들 어 Hadoop Hue) 가 있 습 니 다.다음은 첫 번 째 조회 와 관련 된 일련의 API 호출 입 니 다.
원문:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview#HiveServer2Overview-Introduction
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hive 통합 ElasticSearch역할: Hive 데이터를 Es에 직접 입력 Index 를 생성합니다 Type의 매핑을 생성합니다 es-hive 관련 Jar 패키지를 다운로드하여 HDFS에 넣습니다 Hive 관련 JAR 패키지 추가 ES 외부 테이블...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.