자세한 하둡 가족 -Hive

HIVE 구조

하이브는 하둡 데이터웨어 하우스 인프라를 기반으로합니다. 그것은 하둡 분석에 저장된 대규모 데이터 저장소에 대한 질의, 및 메커니즘 인 데이터 추출 변환로드 (ETL)을 위해 사용될 수있는 도구를 제공합니다. 하이브는 SQL에 익숙한 사용자가 데이터를 조회 할 수 있습니다 QL라는 간단한 SQL과 유사한 쿼리 언어를 정의합니다. 동시에, 언어도 완료 할 수없는자가 매퍼 복잡한 분석 내장 매퍼와 감속기를 처리하기 위해 정의 된 감속기의 맵리 듀스 개발에 익숙한 개발자를 할 수 있습니다.

HIVE 아키텍처

하이브 구조는 다음과 같은 부분으로 나눌 수 있습니다 :

  • 사용자 인터페이스 : CLI, 클라이언트, WUI 포함
  • 메타 데이터 저장 장치. 그것은 일반적으로 MySQL은, 더비와 같은 관계형 데이터베이스에 저장됩니다
  • 통역, 컴파일러, 최적화, 집행
  • 하둡 : HDFS에 저장 맵리 듀스를 이용하여 계산 

CLI, 클라이언트 및 WUI : 1, 세 가지 주요 사용자 인터페이스가 있습니다. 활성화 할 때 가장 일반적으로 사용되는 CLI 중 하나는, CLI는, 동시에 하이브의 사본을 시작합니다. 하이브 클라이언트는 사용자가 하이브 서버에 연결하는 클라이언트입니다. 시작시 클라이언트 모드, 하이브 서버 노드를 지적하고, 노드에서 하이브 서버를 시작하는 것이 필요하다. WUI 브라우저 하이브를 통해 액세스 할 수 있습니다.

MySQL과 더비와 데이터베이스에 저장된 제 2 메타 하이브. 하이브 메타 데이터 테이블의 이름과 파티션 목록 및 그 성질, 특성 시트를 포함한다 (테이블 외부 여부 등), 및 다른 디렉토리 데이터 테이블.

3, 인터프리터, 컴파일러, 어휘 분석, 구문 분석, 컴파일, 최적화 및 쿼리 계획 생성에서 최적화 완료 HQL 쿼리. 생성 된 쿼리 계획은 HDFS, 맵리 듀스에 저장되고 이후에 실행을 촉구했다.

HDFS에 저장된 하이브 데이터가 쿼리의 대부분이 완료 (포함 * 같은 선택과 같은 쿼리 * TBL에서 MapRedcue 작업 생성하지 않음) 맵리 듀스로합니다.

하이브 하둡 관계

하이브는 하둡 기반으로 구축

  • HQL 쿼리의 해석은, 옵티마이 저는 쿼리 계획은 하이브가 완료 될 때 생성
  • 모든 데이터는 하둡에 저장된
  • 쿼리 계획은 하둡에서 수행 맵리 듀스 작업으로 변환된다 (일부 쿼리 수행과 같은하지 MR 작업 : 테이블에서 *를 선택)
  • 하이브 하둡와 UTF-8 인코딩되고

 1.3 하이브 유사점과 차이점 및 일반적인 관계형 데이터베이스

 

하이브

RDBMS

쿼리 언어

HQL

SQL

데이터 저장

HDFS

원시 장치 또는 로컬 FS

색인

아니오

있다

실행

맵리 듀스

Excutor

실행 지연

높은

낮은

스케일 데이터 처리

작은

  1. 쿼리 언어. SQL 널리 데이터웨어 하우스에 사용되기 때문에, 따라서 하이브 SQL과 유사한 쿼리 언어 HQL의 특성을 위해 특별히 디자인했다. SQL 개발자에 익숙한 개발자는 쉽게 하이브 개발 사용할 수 있습니다.
  2. 데이터 저장 위치. 하이브는 하둡 기반으로 구축되어, 하이브 모든 데이터는 HDFS 년대에 저장됩니다. 데이터베이스 데이터 블록 장치 또는 로컬 파일 시스템에 저장 될 수있다.
  3. 데이터 형식입니다. 하이브 구체적 데이터 형식, 사용자에 의해 특정 데이터 포맷을 정의되지 않은 사용자 정의 데이터 포맷은 세 속성 지정 : (일반적으로 공간 "\의 t"\ "X001") 칼럼 세퍼레이터 행 구분자 ( " N ")에 데이터를로드하는 과정입니다. 파일 데이터 (세 하이브 기본 파일 형식이 TextFile, SequenceFile 및 rcfile에 읽을 방법 \ 따라서 하이브 정의 된 데이터 포맷에 대한 사용자 데이터의 포맷으로 변환 없음, 하이브는 수정의로드 처리 데이터 자체가 아니라 단지 데이터를 복사 내용 또는 데이터베이스에서 다른 데이터베이스가 서로 다른 스토리지 엔진을하면서, 자신의 데이터 형식을 정의, HDFS에서 해당 디렉토리로 이동 모든 데이터는 특정 조직에 따라, 따라서 데이터베이스에서 데이터를로드하는 과정이 더 많은 시간이 소요 될 저장됩니다.
  4. 데이터가 업데이트됩니다. 하이브는 데이터웨어 하우스 애플리케이션을 위해 설계되었으며, 데이터웨어 하우스의 내용을 읽을 수 있기 때문에 덜 작성하는 것입니다. 따라서, 하이브는 데이터의 재 작성 지원 및 모든 데이터가로드의 좋은 시간에 결정됩니다 추가되지 않습니다. 데이터베이스의 데이터는 보통 당신이 VALUES는 데이터를 추가 ... INTO INSERT 사용 UPDATE ... SET를 사용하여 데이터를 수정할 수 있도록, 자주 변경을 필요로한다.
  5. 인덱스입니다. 일부 키 데이터에 대한 인덱스가없는, 그래서 데이터가 심지어 스캐닝되지 하이브 데이터를 로딩하는 과정에서 데이터를 처리하지 않을 것이라고 상기 데. 특정 데이터 값 하이브가 액세스 조건을 충족하기 위해, 폭력의 전체 데이터, 따라서 높은 접속 지연을 스캔 할 필요가있다. MapReduce의 데이터에 하이브 병렬 액세스의 도입 이후, 그래서 데이터 액세스 다량 인덱스가없는 경우에도, 하이브 여전히 이점을 반영 할 수있다. 데이터베이스는 일반적으로 하나 또는 몇 열 인덱스 설립, 따라서 데이터의 특정 조건의 소수에 대한 액세스 데이터베이스는 매우 높은 효율, 낮은 대기 시간을 가질 수 있습니다. 때문에 데이터 대기 시간이 액세스, 하이브 온라인 데이터 조회에 적합하지 않은 결정.
  6. 실행. 대부분은 하둡 맵리 듀스에 의해 하이브 쿼리 (유사한 쿼리 * 선택 TBL에서 맵리 듀스 할 필요가 없습니다) 달성하기 위해 제공되는 실행합니다. 데이터베이스는 일반적으로 자신의 실행 엔진이있다.
  7. 실행이 지연. 이 전체 테이블을 스캔 할 필요가 없기 때문에 지연이 높기 때문에, 전에 하이브 쿼리 데이터, 인덱스를 언급했다. 또 다른 원인 하이브 실행 지연 요인은 높은 맵리 듀스 프레임 워크입니다. 맵리 듀스 실행 하이브 쿼리를 사용하는 경우 맵리 듀스 자체가 높은 대기 시간을 가지고, 그래서 때문에, 높은 대기 시간이있을 것이다. 데이터베이스 반대로, 낮은 레이턴시 실행. 물론,이 로우는 대규모 데이터 처리 기능은 데이터베이스에 시간이 지남에 따라, 병렬 컴퓨팅 하이브 명확 장점을 반영 할 때, 데이터의 작은 크기이며, 조건부이다.
  8. 확장 성. 하이브는 하둡의 상단에 내장되어 있기 때문에, 하이브 때문에 확장 성 하둡의 확장 성이며, 일치 (약 4000 노드에서 규모 야후!, 2009 년 세계 최대의 하둡 클러스터). 엄격한 제한 ACID 의미로 인해 데이터베이스는 라인을 확장하는 것은 매우 제한적이다. 이론 약 100 단위에서 가장 고급 병렬 Oracle 데이터베이스 확장 성을 제공합니다.
  9. 데이터 규모. 하이브는 클러스터에 구축되어 있으며 매우 큰 규모의 데이터를 지원할 수 있도록 맵리 듀스 병렬 컴퓨팅을 활용할 수 있기 때문에, 데이터베이스에 대응하는 데이터를 작은 규모를 지원할 수 있습니다.

 

 

추천

출처www.cnblogs.com/shanqiu12/p/11243269.html