비디오: What is Hive and HiveQL? | Apache Hive Tutorial for Beginners | Hive Architecture | COSO IT 2024
Apache Hive의 요소를 살펴보면 아래쪽에 Hive가 Hadoop Distributed File System (HDFS) 및 MapReduce 시스템.
MapReduce의 경우 그림은 Hadoop 1과 Hadoop 2 구성 요소를 모두 보여줍니다. Hadoop 1을 사용하면 Hive 쿼리가 MapReduce 코드로 변환되어 JobTracker 및 TaskTracker와 같은 MapReduce v1 (MRv1) 인프라를 사용하여 실행됩니다.
Hadoop 2를 사용하여 YARN은 MapReduce 프레임 워크에서 리소스 관리 및 스케줄링을 분리했습니다. MapReduce v2 (MRv2) 및 YARN 인프라로 하이브 쿼리를 MapReduce 코드로 변환하여 실행할 수 있습니다.
Apache Tez이라는 개발중인 새로운 프레임 워크가 있습니다.이 프레임 워크는 배치 스타일 쿼리의 하이브 성능을 향상시키고 더 작은 대화 형 (또는 실시간 ) 쿼리를 지원하도록 설계되었습니다. 작성 당시 Apache Tez 프로젝트는 여전히 보육 중이며 아직 제작 준비가되지 않은 릴리스입니다.
모든 조각이 어떻게 맞는지 시각화하는 데 도움이된다면 HDFS 및 MapReduce 시스템을 Hive와 함께 Apache Hadoop 운영 체제의 일부로 간주하고 HBase와 같은 다른 구성 요소 - 더 높은 수준의 기능 또는 응용 프로그램으로. HDFS는 저장소를 제공하고 MapReduce는 하둡 생태계 내에서 상위 수준 기능을위한 병렬 처리 기능을 제공합니다.
다이어그램 위로 이동하면 HiveQL을 컴파일, 최적화 및 실행하는 Hive Driver가 있습니다. Hive 드라이버는 현재 작업에 따라 HiveQL 문과 명령을 로컬에서 실행하거나 MapReduce 작업을 생성하도록 선택할 수 있습니다. 하이브 드라이버는 메타 데이터와 데이터베이스에 테이블 메타 데이터를 저장합니다.
SQL과 RDBMS 세계의 관계형 데이터베이스 모델에 어느 정도 익숙 할 것입니다. 테이블 또는 관계 는 세로 열과 가로 행으로 구성됩니다. 행과 열이 교차하는 곳에 셀 이 저장됩니다. SQL과 관계형 데이터베이스 모델에 익숙하지 않은 경우 좋아하는 검색 엔진을 사용하여 유용한 학습 소스를 찾을 수 있습니다.
기본적으로 Hive에는 내장 모드로 불리는 metastore로 구성된 Apache Derby RDBMS가 포함되어 있습니다. 내장 모드 는 하이브 드라이버, 메타 스토어 및 Apache Derby가 모두 하나의 JVM (Java Virtual Machine)에서 실행되고 있음을 의미합니다.
이 구성은 학습 목적으로 적합하지만 임베디드 모드는 단일 하이브 세션 만 지원할 수 있으므로 일반적으로 다중 사용자 프로덕션 환경에서는 사용되지 않습니다.프로덕션 환경에서 여러 하이브 세션을보다 잘 지원할 수있는 로컬 및 원격 모드가 있습니다. 또한 JDBC (Java Database Connectivity) API (Application Programming Interface) 제품군과 호환되는 모든 RDBMS를 구성 할 수 있습니다. (여기에는 MySQL과 DB2가 포함됩니다.)
애플리케이션 지원의 핵심은 풍부한 클라이언트 세트가 Hive 서브 시스템에 액세스 할 수있게 해주는 Hive Thrift Server입니다. 오픈 소스 SQuirreL SQL 클라이언트가 예제로 포함되어 있습니다. 요점은 모든 JDBC 호환 응용 프로그램이 번들 된 JDBC 드라이버를 통해 하이브에 액세스 할 수 있다는 것입니다.
ODBC (Open Database Connectivity)에 부합하는 클라이언트에도 똑같은 성명이 적용됩니다. 예를 들어 unixODBC와 isql 유틸리티는 일반적으로 Linux에 번들되어 있으며 원격 Linux 클라이언트에서 Hive에 액세스 할 수 있습니다.
또한 Microsoft Excel을 사용하는 경우 클라이언트 시스템에 Microsoft ODBC 드라이버를 설치 한 후 Hive에 액세스 할 수 있다는 사실을 알게되어 매우 기쁩니다. 마지막으로, Java (PHP 나 Python과 같은 프로그래밍 언어)에서 Hive에 액세스해야하는 경우 Apache Thrift가 답입니다. Apache Thrift 클라이언트는 JDBC 및 ODBC 클라이언트처럼 Hive Thrift Server를 통해 하이브에 연결합니다.
Hive 아키텍처 도면을 계속 사용하려면 Hive에 명령 줄 인터페이스 (Command Line Interface, CLI)가 포함되어 있습니다. 여기서 Linux 터미널 창을 사용하여 쿼리 및 관리 명령을 하이브 드라이버에 직접 실행할 수 있습니다. 그래픽 방식의 속도가 더 빨라지면 편리한 웹 인터페이스가있어서 좋아하는 브라우저를 통해 하이브 관리 테이블과 데이터에 액세스 할 수 있습니다.
Apache Hive에 그래픽 사용자 인터페이스 (GUI)를 제공하는 색조로 알려진 또 다른 웹 브라우저 기술이 있습니다. 일부 Hadoop 사용자는 명령 줄 인터페이스 (CLI) 대신 GUI를 마음대로 사용할 수 있습니다. Hue와 함께 Hue는 HDFS, MapReduce / YARN, HBase, Zookeeper, Oozie, Pig 및 Sqoop과 같은 다른 주요 Hadoop 기술을 지원합니다. Hue의 Apache Hive GUI의 이름을 좋아할 것입니다. Beeswax라고합니다.