Hadoop의 Hive란 무엇입니까? 역사와 그 구성요소
게시 됨: 2021-10-07Apache Hive는 Hadoop을 기반으로 구축된 오픈 소스 웨어하우징 시스템입니다. Hive는 Hadoop에 저장된 방대한 데이터 세트를 쿼리하고 분석하는 데 사용됩니다. 구조화된 데이터와 반구조화된 데이터를 모두 처리하여 작동합니다.
이 기사를 통해 Hadoop의 Hive, 그 역사, 중요성, Hive 아키텍처, 몇 가지 주요 기능, 몇 가지 제한 사항 등에 대해 자세히 이야기합시다!
목차
하이브란?
Apache Hive는 단순히 Hadoop을 기반으로 구축된 데이터 웨어하우스 소프트웨어입니다. Apache Hive 이전에는 빅 데이터 엔지니어가 쿼리 작업을 수행하기 위해 복잡한 맵 축소 작업을 작성해야 했습니다. 반면에 Hive를 사용하면 엔지니어가 이제 SQL만 알면 되므로 상황이 크게 줄어듭니다.
Hive는 HiveQL(SQL과 유사)이라는 언어에서 작동하므로 SQL에 대한 실무 지식이 있는 엔지니어가 쉽게 사용할 수 있습니다. HiveQL은 SQL 쿼리를 Hadoop이 실행할 수 있는 맵 축소 작업으로 자동 변환합니다.
그렇게 함으로써 Apache는 Hadoop 작업에 추상화 개념을 제시하고 데이터 전문가가 Hive 작업을 위한 Java 프로그래밍 언어를 배우지 않고도 복잡한 데이터 세트를 처리할 수 있도록 합니다. Apache Hive는 워크스테이션에서 작동하며 SQL 쿼리를 Hadoop 클러스터에서 실행할 맵 축소 작업으로 변환합니다. Hive는 모든 데이터를 테이블로 분류하여 HDFS에 있는 모든 데이터에 구조를 제공합니다.
아파치 하이브의 역사
데이터 인프라 팀은 Facebook에서 Apache Hive를 소개했습니다. Facebook에서 수많은 내부 목적으로 적극적으로 사용되는 기술 중 하나입니다. 수년 동안 Apache Hive는 다양한 애플리케이션에 대해 수백 명의 사용자와 함께 클러스터에서 수천 개의 작업을 실행했습니다.
Facebook의 Hive-Hadoop 클러스터는 3PB 이상의 원시 데이터를 저장합니다. 매일 실시간으로 15TB의 데이터를 로드할 수 있습니다. 거기에서 Apache Hive는 사용 사례에서 훨씬 더 성장했으며 오늘날 IBM, Yahoo, Amazon, FINRA, Netflix 등과 같은 거대 기업에서 사용합니다.
세계 최고의 대학에서 온라인으로 데이터 과학 인증 을 받으십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
Apache Hive가 필요한 이유는 무엇입니까?
Apache Hive를 출시하기 전에 Facebook은 분석할 데이터 크기가 계속 증가하고 이 대규모 데이터 세트의 완전한 불일치와 같은 많은 문제로 어려움을 겪었습니다. 이러한 문제로 인해 Facebook은 데이터 집약적인 작업을 원활하게 처리하기가 어려웠습니다. 기존의 RDBMS 기반 구조는 계속 증가하는 압력을 제어하기에 충분하지 않았습니다.
Facebook은 이러한 문제를 극복하기 위해 먼저 맵 축소를 도입했지만 HiveQL에서 작동하는 Apache Hive를 제공하여 더 단순화했습니다.
결국 Apache Hive는 꼭 필요한 구세주로 떠올랐고 Facebook이 다양한 문제를 극복하도록 도왔습니다. 이제 Apache Hive를 사용하여 Facebook은 다음을 달성할 수 있었습니다.
- 스키마의 진화와 유연성.
- 테이블 파티셔닝 및 버킷팅.
- HDFS에서 직접 Hive 테이블 정의.
- ODBC/JDBC 드라이버의 가용성.
대체로 Apache Hive는 개발자가 복잡한 맵 축소 작업을 작성하는 데 드는 많은 시간을 절약하는 데 도움이 되었습니다. Hive는 데이터 요약, 분석, 쿼리 및 탐색을 단순화합니다.
SQL에만 의존하는 Apache Hive는 빠르고 확장 가능한 프레임워크이며 확장성이 뛰어납니다. SQL을 사용하는 기본 쿼리를 이해하면 Apache Hive를 즉시 사용할 수 있습니다! 또한 HBase 및 HDFS와 같은 다양한 데이터 저장소에 대한 파일 액세스를 제공합니다.
Apache Hive의 아키텍처
이제 Apache Hive의 중요성과 출현을 이해했으므로 Apache Hive의 주요 구성 요소를 살펴보겠습니다. Apache Hive의 아키텍처에는 다음이 포함됩니다.
1. 메타스토어
이것은 각 테이블에 대한 메타데이터를 저장하는 데 사용됩니다. 메타데이터는 일반적으로 위치와 스키마로 구성됩니다. Metastore는 또한 엔지니어가 클러스터에 분산된 다양한 데이터 세트의 진행 상황을 추적하는 데 도움이 되는 파티션 메타데이터로 구성됩니다. 여기에 저장되는 데이터는 기존 RDBMS 형식입니다.
2. 드라이버
Apache Hive의 드라이버는 HiveQL 문 수신을 담당하는 컨트롤러와 같습니다. 그런 다음 다른 세션을 만들어 이러한 명령문의 실행을 시작합니다. 드라이버는 또한 구현의 수명 주기와 진행 과정을 모니터링하고 관리할 책임이 있습니다. 드라이버는 HiveQL 문이 실행될 때 생성되는 모든 중요한 메타데이터를 보유합니다. 또한 map-reduce 작업 후에 얻은 데이터의 수집 지점 역할을 합니다.
3. 컴파일러
컴파일러는 HiveQL 쿼리를 컴파일하는 데 사용됩니다. 사용자 생성 쿼리를 수행해야 하는 모든 작업이 포함된 완벽한 실행 계획으로 변환합니다. 이 계획에는 필요한 출력을 얻기 위해 map-reduce를 따르는 데 필요한 모든 단계와 절차도 포함됩니다. Hive 컴파일러는 사용자 입력 쿼리를 AST(추상 구문 트리)로 변환하여 컴파일 시간 오류 또는 호환성 문제를 확인합니다. 문제가 발생하지 않으면 AST가 방향성 비순환 그래프(DAG)로 변환됩니다.
4. 옵티마이저
최적화 프로그램은 최적화된 DAG에 도달하는 데 필요한 실행 계획에 대한 모든 변환을 수행합니다. 성능을 향상시키기 위해 개별 조인 배열을 단일 조인으로 변환하는 것과 같이 모든 변환을 함께 집계하여 수행합니다. 또한 옵티마이저는 축소된 작업이 수행되기 전에 데이터에 변환을 적용하여 다른 작업을 분할하여 전체 성능을 향상시킬 수 있습니다.
5. 집행자 –
Apache Hive가 컴파일 및 최적화 작업을 수행하면 실행 프로그램이 최종 실행을 수행합니다. 작업을 파이프라이닝하고 완료하는 작업을 처리합니다.
6. CLI, UI 및 Thrift 서버
CLI(명령줄 인터페이스)는 Apache Hive의 다양한 기능과 상호 작용할 수 있는 사용자 인터페이스를 외부 사용자에게 제공하는 데 사용됩니다. CLI는 최종 사용자를 위한 Hive의 UI를 구성하는 것입니다. 반면에 Thrift 서버를 사용하면 ODBC 또는 JDBC 프로토콜과 유사하게 외부 클라이언트가 네트워크를 통해 Hive와 상호 작용할 수 있습니다.
Apache Hive의 핵심 기능
앞서 언급했듯이 Apache Hive는 엔지니어가 데이터 작업을 수행하는 방식에 매우 필요한 변화를 가져왔습니다. 더 이상 Java는 인기 있는 언어가 아니었고 개발자는 SQL만 사용하여 작업할 수 있었습니다. 그 외에도 다음과 같은 Hive의 몇 가지 다른 필수 기능이 있습니다.
- Apache Hive는 훨씬 더 단순화된 방식으로 데이터 요약, 분석 및 쿼리를 제공합니다.
- Hive는 내부 및 외부 테이블을 지원하므로 외부 데이터를 H DFS로 가져오지 않고 작업할 수 있습니다.
- Apache Hive는 Hadoop의 하위 수준 인터페이스 요구 사항에 완벽하게 작동합니다.
- Apache Hive는 테이블 수준에서 데이터 분할을 지원하여 전체 성능을 개선하는 데 도움이 됩니다.
- 다양한 논리적 계획을 최적화하기 위한 규칙 기반 옵티마이저가 있습니다.
- SQL과 유사한 언어인 HiveQL에서 작동하므로 개발자는 대규모 데이터 세트 작업을 위해 다른 언어를 마스터할 필요가 없습니다.
- Hive에서 쿼리하는 것은 SQL과 유사하게 매우 간단합니다.
- Hive를 사용하여 데이터 분석을 위해 Ad-hoc 쿼리를 실행할 수도 있습니다.
아파치 하이브의 한계
데이터 과학의 세계는 상대적으로 새롭고 끊임없이 진화하기 때문에 시장에서 사용할 수 있는 최고의 도구조차도 몇 가지 제한 사항이 있습니다. 이러한 한계를 해결하는 것이 차기 최고의 도구가 될 것입니다. 다음은 염두에 두어야 할 Apache Hive 작업의 몇 가지 제한 사항입니다.
- Hive는 행 수준 업데이트 및 실시간 쿼리를 제공하지 않습니다.
- Apache Hive는 상호 작용에 대해 허용 가능한 대기 시간을 제공합니다.
- 온라인 거래에 가장 적합하지 않습니다.
- Hive 쿼리의 지연 시간은 일반적으로 평균보다 높습니다.
결론적으로
Apache Hive는 데이터 엔지니어가 대규모 데이터 세트에서 작업하는 방식에 과감하고 놀라운 개선을 가져왔습니다. 또한 Apache Hive는 Java 프로그래밍 언어의 필요성을 완전히 제거함으로써 데이터 엔지니어에게 친숙한 편안함을 제공했습니다. 오늘날 SQL 쿼리에 대한 기본 지식이 있으면 Apache Hive로 원활하게 작업할 수 있습니다.
앞서 언급했듯이 데이터 과학은 역동적이고 끊임없이 진화하는 분야입니다. 우리는 앞으로 몇 년 동안 일을 더욱 단순화하는 새로운 도구와 프레임워크를 선보일 것이라고 확신합니다. 데이터 과학 거래의 모든 도구를 배우고자 하는 데이터 애호가라면 지금이 Hive와 같은 빅 데이터 도구를 활용하기에 가장 좋은 시기입니다.
upGrad에서 우리는 전 세계의 학생들을 멘토링하고 지도했으며 다양한 배경을 가진 사람들이 데이터 과학 산업에서 확고한 발판을 마련하도록 도왔습니다. 우리의 전문 교사, 업계 파트너십, 배치 지원 및 강력한 동문 네트워크는 이 여정에서 결코 혼자가 아니라는 것을 보장합니다. 따라서 데이터 과학의 Executive PG 프로그램을 확인하고 귀하에게 적합한 프로그램에 등록하십시오. 나머지는 저희가 알아서 하겠습니다!
Apache Hive는 대규모 데이터 세트를 웨어하우징, 쿼리 및 분석하는 데 사용되는 프레임워크 또는 시스템입니다. Apache Hive는 내부 운영을 향상시키기 위해 Facebook에 의해 도입되었으며 그 이후로 데이터 과학 스펙트럼의 필수적인 부분이 되었습니다. 아니요! SQL에 대한 실무 지식만 있으면 Apache Hive를 시작하기에 충분합니다! Apache Hive는 일반적으로 OLAP(일괄 처리)에 사용되며 데이터베이스에 대한 실시간 작업으로 인해 일반적으로 OLTP에 사용되지 않습니다.Hadoop의 Apache Hive란 무엇입니까?
Hadoop에서 Apache Hive를 사용하려면 특정 언어를 배워야 합니까?
Apache Hive는 무엇에 사용되지 않습니까?