>일반적인 문제 >Hive 구성 요소는 어떤 서비스를 제공합니까?

Hive 구성 요소는 어떤 서비스를 제공합니까?

青灯夜游
青灯夜游원래의
2022-11-18 11:57:002532검색

Hive 구성 요소는 다음 서비스를 제공할 수 있습니다. 1. SQL 문을 mapreduce 코드로 변환합니다. 2. 저장을 위해 HDFS를 사용하여 데이터를 저장할 수 있습니다. 3. MapReduce를 사용하여 데이터를 계산할 수 있습니다. hive는 데이터 추출, 변환 및 로드에 사용되는 Hadoop 기반 데이터 웨어하우스 도구입니다. Hive 데이터 웨어하우스 도구는 구조화된 데이터 파일을 데이터베이스 테이블에 매핑할 수 있고 SQL 문을 MapReduce 작업으로 변환하여 실행할 수 있는 SQL 쿼리 기능을 제공합니다. .

Hive 구성 요소는 어떤 서비스를 제공합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

데이터 웨어하우스를 구축할 때 Hive 구성 요소는 매우 중요한 역할을 합니다. Hive가 Hadoop 기반의 중요한 데이터 웨어하우스 도구라는 것을 알고 있지만 이를 적용하는 방법은 추가 탐색이 필요합니다.


Hive란 무엇입니까

hive는 데이터를 추출, 변환, 로딩하는 데 사용되는 Hadoop 기반의 데이터 웨어하우스 도구로, 대규모 데이터를 저장, 쿼리, 분석할 수 있는 데이터의 일종입니다. Hadoop 메커니즘에 저장됩니다. Hive 데이터 웨어하우스 도구는 구조화된 데이터 파일을 데이터베이스 테이블에 매핑할 수 있으며 SQL 문을 MapReduce 작업으로 변환하여 실행할 수 있는 SQL 쿼리 기능을 제공합니다. Hive의 장점은 학습 비용이 저렴하고 SQL과 같은 문을 통해 빠른 MapReduce 통계를 구현할 수 있어 전문적인 MapReduce 애플리케이션을 개발하지 않고도 MapReduce를 더 간단하게 만들 수 있다는 것입니다. hive는 데이터 웨어하우스의 통계 분석에 매우 적합합니다

Hive의 용도

1. SQL 문을 mapreduce 코드로 변환
2. HDFS를 사용하여 데이터를 저장할 수 있습니다
3. 데이터를 계산할 수 있습니다. 계산에 MapReduce를 사용하면 장점은 무엇입니까? 컴퓨팅/확장 기능이 함께 설계되었습니다(컴퓨팅 엔진으로 MR, 스토리지 시스템으로 HDFS)

일반적으로 Hive는 서비스를 다시 시작할 필요가 없으며 클러스터의 규모를 자유롭게 확장할 수 있습니다. . (3) 통합 메타데이터 관리 제공(4) 확장성: Hive는 사용자 정의 기능을 지원하므로 사용자는 필요에 따라 자체 기능을 구현할 수 있습니다.

(5) 내결함성: 우수한 내결함성, 노드 문제가 있는 경우 Hive의 단점

(1)hive의 HQL 표현 능력이 제한적입니다

1) pagerank와 같은 반복 알고리즘을 표현할 수 없습니다

2) Data kmeans와 같은 마이닝

(2) 하이브의 효율성은 상대적으로 낮습니다

1) 하이브에서 자동으로 생성된 맵리듀스 작업은 일반적으로 충분히 지능적이지 않습니다.

  • 2) 하이브 튜닝이 어렵고 세분성이 거칠습니다.

  • 3)hive는 제어성이 좋지 않습니다

(3)Hive는 지원하지 않습니다. 주로 OLAP(온라인 분석 처리)에 사용됩니다

  • 1) Hive에서 처리되는 데이터는 HDFS
  • 2) 기본 Hive 분석 데이터의 기본 구현은 MapReduce
  • 3) Executor는 Yarn에서 실행됩니다. 위 내용 요약

: hadoop의 클라이언트 역할과 동일합니다.

Hive 구성 요소는 어떤 서비스를 제공합니까?

Hive를 사용하는 이유

(1) Hive와 기존 데이터베이스의 비교

Hive는 대용량 데이터의 오프라인 데이터 분석에 사용됩니다. Hive는 SQL 데이터베이스처럼 보이지만 적용 시나리오는 완전히 다릅니다. Hive는 배치 데이터의 통계 분석에만 적합합니다.

(2) Hive의 장점Hive는 HDFS를 사용하여 데이터를 저장하고 MapReduce를 사용하여 데이터를 쿼리하고 분석합니다. Hadoop MapReduce를 직접 사용하여 데이터를 처리하면 인건비 비용이 많이 들고 MapReduce를 사용하여 복잡한 쿼리 논리를 개발하는 것이 너무 어렵기 때문입니다. Hive를 사용하면 작업 인터페이스가 SQL과 유사한 구문을 채택하여 빠른 개발 기능을 제공할 뿐만 아니라 MapReduce 작성을 방지하여 개발자의 학습 비용을 줄이고 기능 확장을 더욱 편리하게 만듭니다.

Hive는 어떤 문제를 해결하나요?

Hive는 MR을 작성할 수 없는 사람들도 MR을 사용할 수 있도록 빅데이터의 쿼리 기능을 해결합니다. 그 핵심은 HQL을 MR로 변환하는 것입니다. MR을 작성하는 것은 비효율적이고 고통스럽습니다. Hive의 출현은 JAVAEE 형제에게 지름길과 좋은 소식을 가져왔습니다.

Hive 구성 요소는 어떤 서비스를 제공합니까?Hive 아키텍처 원리

1. 사용자 인터페이스: 클라이언트

CLI(하이브 셸), JDBC/ODBC(자바 액세스 하이브), WEBUI(브라우저 액세스 하이브)2. 메타데이터: 메타스토어

메타데이터에는 테이블 이름, 테이블이 속한 데이터베이스(기본값은 기본값), 테이블 소유자, 열/파티션 필드, 테이블 유형

(외부 테이블인지 여부), 테이블 데이터가 있는 디렉터리 등이 포함됩니다. .;

메타데이터 데이터: Metastore

메타데이터에는 테이블 이름, 테이블이 속한 데이터베이스(기본값은 기본값), 테이블 소유자, 열/파티션 필드, 테이블 유형

(외부 테이블인지 여부), 테이블의 데이터가 있는 디렉토리 등 ;

기본적으로 내장된 Derby 데이터베이스에 저장됩니다. Metastore를 저장하려면 MySQL을 사용하는 것이 좋습니다.

3. Hadoop

은 저장을 위해 HDFS를 사용하고 계산을 위해 MapReduce를 사용합니다.

4. 드라이버: Driver

(1) 파서(SQL 파서): SQL 문자열을 추상 구문 트리 AST로 변환합니다. 이 단계는 일반적으로 antlr과 같은 타사 도구 라이브러리를 사용하여 테이블과 같은 AST에 대한 구문 분석을 수행합니다. 존재 여부, 필드 존재 여부, SQL 의미 체계가 잘못된지 여부.

(2) 컴파일러(물리적 계획): AST를 컴파일하여 논리적 실행 계획을 생성합니다.

(3) Optimizer(쿼리 최적화 프로그램): 논리적 실행 계획을 최적화합니다.

(4) 실행: 논리적 실행 계획을 실행 가능한 물리적 계획으로 변환합니다. Hive의 경우 MR/Spark입니다.

Hive는 Hadoop을 기반으로 구축되었으며 모든 Hive 데이터는 HDFS에 저장됩니다. 데이터베이스는 블록 장치 또는 로컬 파일 시스템에 데이터를 저장할 수 있습니다.

Hive는 데이터 웨어하우스 애플리케이션용으로 설계되었으므로 데이터 웨어하우스의 콘텐츠에는 더 많은 읽기와 쓰기가 필요합니다. 따라서 Hive

Hive 구성 요소는 어떤 서비스를 제공합니까?에서 데이터를 다시 쓰는 것은 권장되지 않습니다. 모든 데이터는 로드 시 결정됩니다. 데이터베이스의 데이터는 일반적으로 자주 수정되어야 하므로 INSERT INTO... VALUES를 사용하여 데이터를 추가하고 UPDATE... SET을 사용하여 데이터를 수정할 수 있습니다.

Hive와 데이터베이스 비교

Hive는 SQL과 유사한 쿼리 언어인 HQL(Hive Query Language)을 사용하기 때문에 Hive를 데이터베이스로 이해하기 쉽습니다. 실제로 구조적인 관점에서 볼 때 유사한 쿼리 언어를 사용하는 것 외에 Hive와 데이터베이스는 공통점이 없습니다. 이 섹션에서는 여러 측면에서 Hive와 데이터베이스의 차이점을 설명합니다. 데이터베이스는 온라인 애플리케이션에서 사용할 수 있지만 Hive는 데이터 웨어하우스용으로 설계되었습니다. 이를 알면 애플리케이션 관점에서 Hive의 특성을 이해하는 데 도움이 됩니다.

1. 쿼리 언어

SQL은 데이터 웨어하우스에서 널리 사용되므로 SQL과 유사한 쿼리 언어인 HQL은 Hive의 특성에 맞게 특별히 설계되었습니다. SQL 개발에 익숙한 개발자라면 Hive를 이용해 쉽게 개발할 수 있습니다.

2. 데이터 저장 위치 Hive는 Hadoop을 기반으로 구축되었으며 모든 Hive 데이터는 HDFS에 저장됩니다. 데이터베이스는 블록 장치 또는 로컬 파일 시스템에 데이터를 저장할 수 있습니다.

3. 데이터 업데이트: Hive는 데이터 웨어하우스 애플리케이션용으로 설계되었으므로 데이터 웨어하우스의 콘텐츠에는 더 많은 읽기와 쓰기가 필요합니다. 따라서 Hive에서 데이터를 다시 쓰는 것은 권장되지 않습니다. 모든 데이터는 로드 시 결정됩니다. 데이터베이스의 데이터는 일반적으로 자주 수정해야 하므로 INSERT INTO... VALUES를 사용하여 데이터를 추가하고 UPDATE... SET을 사용하여 데이터를 수정할 수 있습니다.

4. 인덱스: Hive는 데이터를 로드하는 동안 데이터에 대한 처리를 수행하지 않거나 데이터를 스캔하지 않으므로 데이터의 일부 키가 인덱스되지 않습니다. Hive가 조건에 맞는 데이터의 특정 값에 접근하려면 전체 데이터를 무차별 대입해서 스캔해야 하므로 접근 지연 시간이 높습니다. MapReduce의 도입으로 인해 Hive는 데이터에 병렬로 접근할 수 있으므로 인덱스가 없어도 Hive는 여전히 많은 양의 데이터에 접근할 수 있는 이점을 발휘할 수 있습니다. 데이터베이스에서는 일반적으로 하나 또는 여러 개의 열에 인덱스가 생성되므로 특정 조건에서 소량의 데이터에 액세스할 때 데이터베이스의 효율성이 높고 대기 시간이 짧습니다. 데이터 액세스 대기 시간이 길기 때문에 Hive는 온라인 데이터 쿼리에 적합하지 않습니다.

5. 실행: Hive에서 대부분의 쿼리 실행은 Hadoop에서 제공하는 MapReduce를 통해 구현됩니다. 데이터베이스에는 일반적으로 자체 실행 엔진이 있습니다.

6. 실행 지연: Hive가 데이터를 쿼리할 때 인덱스가 없으므로 전체 테이블을 스캔해야 하므로 지연이 높습니다. Hive 실행 대기 시간을 높이는 또 다른 요인은 MapReduce 프레임워크입니다. MapReduce 자체는 대기 시간이 높으므로 MapReduce를 사용하여 Hive 쿼리를 실행할 때도 대기 시간이 길어집니다. 대조적으로, 데이터베이스의 실행 대기 시간은 낮습니다. 물론, 이 낮은 것은 조건부입니다. 즉, 데이터 규모가 데이터베이스의 처리 능력을 초과할 만큼 클 때 Hive의 병렬 컴퓨팅은 그 장점을 분명히 보여줄 수 있습니다.

7. 확장성: Hive는 Hadoop을 기반으로 구축되었으므로 Hive의 확장성은 Hadoop의 확장성과 일치합니다(세계에서 가장 큰 Hadoop 클러스터는 Yahoo!에 있으며 규모는 2009년). 약 4000노드. ACID 의미 체계의 엄격한 제한으로 인해 데이터베이스에는 확장 행이 매우 제한되어 있습니다. 현재 가장 발전된 병렬 데이터베이스인 오라클은 이론상 확장 능력이 100유닛 정도에 불과하다.

8. 데이터 규모: Hive는 클러스터에 구축되고 MapReduce를 사용하여 병렬 컴퓨팅을 수행할 수 있으므로 이에 따라 데이터베이스는 더 작은 데이터 규모를 지원할 수 있습니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 교육을 방문하세요! !

위 내용은 Hive 구성 요소는 어떤 서비스를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.