Hive 구성 요소는 다음 서비스를 제공할 수 있습니다. 1. SQL 문을 mapreduce 코드로 변환합니다. 2. 저장을 위해 HDFS를 사용하여 데이터를 저장할 수 있습니다. 3. MapReduce를 사용하여 데이터를 계산할 수 있습니다. hive는 데이터 추출, 변환 및 로드에 사용되는 Hadoop 기반 데이터 웨어하우스 도구입니다. Hive 데이터 웨어하우스 도구는 구조화된 데이터 파일을 데이터베이스 테이블에 매핑할 수 있고 SQL 문을 MapReduce 작업으로 변환하여 실행할 수 있는 SQL 쿼리 기능을 제공합니다. .
이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
데이터 웨어하우스를 구축할 때 Hive 구성 요소는 매우 중요한 역할을 합니다. Hive가 Hadoop 기반의 중요한 데이터 웨어하우스 도구라는 것을 알고 있지만 이를 적용하는 방법은 추가 탐색이 필요합니다.
hive는 데이터를 추출, 변환, 로딩하는 데 사용되는 Hadoop 기반의 데이터 웨어하우스 도구로, 대규모 데이터를 저장, 쿼리, 분석할 수 있는 데이터의 일종입니다. Hadoop 메커니즘에 저장됩니다. Hive 데이터 웨어하우스 도구는 구조화된 데이터 파일을 데이터베이스 테이블에 매핑할 수 있으며 SQL 문을 MapReduce 작업으로 변환하여 실행할 수 있는 SQL 쿼리 기능을 제공합니다. Hive의 장점은 학습 비용이 저렴하고 SQL과 같은 문을 통해 빠른 MapReduce 통계를 구현할 수 있어 전문적인 MapReduce 애플리케이션을 개발하지 않고도 MapReduce를 더 간단하게 만들 수 있다는 것입니다. hive는 데이터 웨어하우스의 통계 분석에 매우 적합합니다
1. SQL 문을 mapreduce 코드로 변환
2. HDFS를 사용하여 데이터를 저장할 수 있습니다
3. 데이터를 계산할 수 있습니다. 계산에 MapReduce를 사용하면 장점은 무엇입니까? 컴퓨팅/확장 기능이 함께 설계되었습니다(컴퓨팅 엔진으로 MR, 스토리지 시스템으로 HDFS)
(5) 내결함성: 우수한 내결함성, 노드 문제가 있는 경우 Hive의 단점
(1)hive의 HQL 표현 능력이 제한적입니다 1) pagerank와 같은 반복 알고리즘을 표현할 수 없습니다 2) Data kmeans와 같은 마이닝 (2) 하이브의 효율성은 상대적으로 낮습니다1) 하이브에서 자동으로 생성된 맵리듀스 작업은 일반적으로 충분히 지능적이지 않습니다.
Hive를 사용하는 이유
(1) Hive와 기존 데이터베이스의 비교
Hive는 대용량 데이터의 오프라인 데이터 분석에 사용됩니다. Hive는 SQL 데이터베이스처럼 보이지만 적용 시나리오는 완전히 다릅니다. Hive는 배치 데이터의 통계 분석에만 적합합니다.
(2) Hive의 장점Hive는 HDFS를 사용하여 데이터를 저장하고 MapReduce를 사용하여 데이터를 쿼리하고 분석합니다. Hadoop MapReduce를 직접 사용하여 데이터를 처리하면 인건비 비용이 많이 들고 MapReduce를 사용하여 복잡한 쿼리 논리를 개발하는 것이 너무 어렵기 때문입니다. Hive를 사용하면 작업 인터페이스가 SQL과 유사한 구문을 채택하여 빠른 개발 기능을 제공할 뿐만 아니라 MapReduce 작성을 방지하여 개발자의 학습 비용을 줄이고 기능 확장을 더욱 편리하게 만듭니다.
Hive는 MR을 작성할 수 없는 사람들도 MR을 사용할 수 있도록 빅데이터의 쿼리 기능을 해결합니다. 그 핵심은 HQL을 MR로 변환하는 것입니다. MR을 작성하는 것은 비효율적이고 고통스럽습니다. Hive의 출현은 JAVAEE 형제에게 지름길과 좋은 소식을 가져왔습니다.
Hive 아키텍처 원리
1. 사용자 인터페이스: 클라이언트
메타데이터에는 테이블 이름, 테이블이 속한 데이터베이스(기본값은 기본값), 테이블 소유자, 열/파티션 필드, 테이블 유형
(외부 테이블인지 여부), 테이블 데이터가 있는 디렉터리 등이 포함됩니다. .;
메타데이터 데이터: 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에서 데이터를 다시 쓰는 것은 권장되지 않습니다. 모든 데이터는 로드 시 결정됩니다. 데이터베이스의 데이터는 일반적으로 자주 수정되어야 하므로 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에 저장됩니다. 데이터베이스는 블록 장치 또는 로컬 파일 시스템에 데이터를 저장할 수 있습니다.6. 실행 지연: Hive가 데이터를 쿼리할 때 인덱스가 없으므로 전체 테이블을 스캔해야 하므로 지연이 높습니다. Hive 실행 대기 시간을 높이는 또 다른 요인은 MapReduce 프레임워크입니다. MapReduce 자체는 대기 시간이 높으므로 MapReduce를 사용하여 Hive 쿼리를 실행할 때도 대기 시간이 길어집니다. 대조적으로, 데이터베이스의 실행 대기 시간은 낮습니다. 물론, 이 낮은 것은 조건부입니다. 즉, 데이터 규모가 데이터베이스의 처리 능력을 초과할 만큼 클 때 Hive의 병렬 컴퓨팅은 그 장점을 분명히 보여줄 수 있습니다.
7. 확장성: Hive는 Hadoop을 기반으로 구축되었으므로 Hive의 확장성은 Hadoop의 확장성과 일치합니다(세계에서 가장 큰 Hadoop 클러스터는 Yahoo!에 있으며 규모는 2009년). 약 4000노드. ACID 의미 체계의 엄격한 제한으로 인해 데이터베이스에는 확장 행이 매우 제한되어 있습니다. 현재 가장 발전된 병렬 데이터베이스인 오라클은 이론상 확장 능력이 100유닛 정도에 불과하다.
8. 데이터 규모: Hive는 클러스터에 구축되고 MapReduce를 사용하여 병렬 컴퓨팅을 수행할 수 있으므로 이에 따라 데이터베이스는 더 작은 데이터 규모를 지원할 수 있습니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 교육을 방문하세요! !
위 내용은 Hive 구성 요소는 어떤 서비스를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!