hive 11

[Hive] 테이블 - SerDe

개요 2024.01.18 - [Hive] 테이블 - 개념 및 유형에 이어서 이 글에서는 Hive가 데이터를 해석하는 방법을 제공하는 SerDe라는 개념에 대해 적어둔다. SerDe SerDe는 Serializer and Deserializer의 약어다. Hive는 FileFormat과 SerDe를 이용해 테이블 행을 읽고 쓴다. 파일을 읽을 때는 FileFormat을 이용한 후, Deserializer를 사용해 파일 데이터를 테이블 형식에 맞는 데이터로 변환한다. 반대로 파일을 쓸 때는 데이터를 Serializer를 이용해 key-value 형태로 변환한 후 FileFormat을 사용하여 파일로 저장한다. Hive 기본 SerDe Hive는 기본적으로 Avro, ORC, RegEx, Thrift, Par..

Hadoop EcoSystem 2024.02.16

[Hive] 테이블 - 버켓팅 (bucketing)

개요 2024.01.19 - [Hive] 테이블 - 파티션에 이어서 이번 글에서는 hive 성능에 관련이 있는 버켓팅 개념에 대해서 간단히 이해해보려고 한다. bucketing bucketing의 기본 아이디어는 특정 컬럼에 대한 HASH 값을 기준으로 파일을 나눠서 저장하는 것이다. 달리 표현하면, 특정 컬럼의 값을 해시 처리한 후 지정한 수의 파일로 분리해서 저장하는 것이다. bucketing을 사용하면 쿼리의 성능을 향상시킬 수 있다. 예로 들어 WHERE 조건에 버킷 컬럼을 사용하거나, 테이블 JOIN 시 bucket 기준 컬럼을 사용하면 해당 키의 해시값에 해당하는 버킷만 데이터를 스캐닝할 수 있기 때문이다. 테이블 버켓팅 설정 버켓팅은 테이블 생성 시 CLUSTERED BY ~ INTO n B..

Hadoop EcoSystem 2024.02.02

[Hive] 테이블 - 파티션

개요 2024.01.17 - [Hive] 데이터베이스, 2024.01.18 - [Hive] 테이블 - 개념 및 유형에 이어서 이번 글에서는 Hive 테이블의 파티션 개념에 대해 정리한다. 파티션 Hive는 디렉터리 단위로 데이터를 읽기 때문에 데이터가 많아질수록 속도가 느려진다. 이를 방지하기 위해 데이터를 하위 폴더로 분리해서 저장하는 파티션 개념을 사용한다. 테이블 생성 시 PARTITIOND BY절로 기준 컬럼 정보를 제공하면 디렉터리 단위로 데이터가 생성되며, 데이터 조회 시 WHERE 조건절에서 사용할 수 있다. 즉, SELECT 시 읽는 데이터의 양을 줄여서 처리 속도를 개선할 수 있다. 사용 예시) -- 날짜 기준 파티션 생성 CREATE TABLE tbl( col1 STRING ) PART..

Hadoop EcoSystem 2024.01.19

[Hive] 테이블 - 개념 및 유형

개요 2024.01.17 - [Hive] 데이터베이스에 이어 이번 글에서는 Hive 테이블 개념에 대해 정리한다. 테이블 Hive에서 테이블은 HDFS에 저장된 파일과 디렉터리 구조에 대한 메타 정보라고 할 수 있다. 실제 파일의 구조에 대한 정보와 저장 위치, 입력 형식, 출력 형식, 파티션 정보 등 여러 정보를 포함한다. 테이블은 CREATE 문으로 생성할 수 있다. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [column_constraint_specification] [COMM..

Hadoop EcoSystem 2024.01.18

[Hive] 데이터베이스

개요 빅데이터 관련 프로젝트에 투입되어 있으면서 파티션이라는 개념을 듣게 되었는데, 관련하여 데이터베이스 개념부터 잡아야 할 것 같아 정리한다. 데이터베이스 Hive에서 데이터베이스는 테이블 이름을 구별하기 위한 네임스페이스 역할을 한다. 또한 테이블 데이터의 기본 저장 위치를 제공하는데, 만약 데이터베이스 생성 시 저장 위치를 지정하지 않으면 기본값으로 설정된다. # 데이터 웨어하우스 기본 위치 hive.metastore.warehouse.dir = /user/hive/warehouse # Hive 데이터베이스 기본 위치 /user/hive/.db # Hive 테이블 기본 위치 /user/hive/.db/ 데이터웨어하우스, 데이터베이스, 테이블의 기본 위치는 위와 같다. 데이터베이스 생성 Hive 데이..

Hadoop EcoSystem 2024.01.17

[Trino/Hive] AWS S3 쿼리하기

개요 2023.03.02 - [Trino] 설치/구성/실행 2023.03.19 - [Ubuntu/Hadoop] Single Node/Standalone 설치 2023.03.22 - [Hive] Metastore 설치 및 실행 2023.03.29 - [Trino] Hive Connector 추가 최근 위와 같은 글들을 작성했는데, 이 글에서는 Hive Connector를 이용해 Trino로 S3에 저장된 데이터를 쿼리하고 싶다. 간단히 말해 Trino를 AWS Athena처럼 쓰고 싶다. 설정 방법을 정리해둔다. 1. 필요한 소프트웨어는 모두 설치되어 동작하고 있다고 가정한다. 2. 이 글에서는 Trino와 Hive Connector로 S3에 연결하는 방법 위주로 적어둔다. HMS에 AWS 라이브러리 추가..

Trino 2023.03.30

[Trino] Hive Connector 추가

개요 2023.03.27 - [Trino] Hive Connector에서 Trino의 Hive 커넥터에 대한 개념을 정리해 보았다. 이 글에서는 구성 방법을 정리해두려고 한다. 요구 사항 Trino Hive 커넥터를 사용하기 위해서는 아래와 같은 사항이 필요하다. Apache Hadoop HDFS 2.x 또는 3.X HMS(Hive Metastore) 또는 AWS Glue data catalog와 같은 HMS 구현 : Coordinator와 Worker는 HMS 및 스토리지 시스템에 접근할 수 있어야 한다. 필요하다면 아래의 글을 참고하여 구성한다. 2023.03.19 - [Ubuntu/Hadoop] Single Node/Standalone 설치 2023.03.23 - [Hive] Metastore 설치..

Trino 2023.03.29

[Hive/HMS] Unable to create database path file:/user/hive/warehouse/*.db

개요 HMS에 스키마 생성을 시도했으나 아래와 같은 에러와 함께 생성에 실패했다. failed: Unable to create database path file:/user/hive/warehouse/schema_create_test.db 해결 방법을 적어둔다. 원인 hive.metastore.warehouse.dir에 접근이 불가능해 발생한 현상이다. hive.metastore.warehouse.dir 속성의 기본값은 /user/hive/warehouse인데, 이 경로는 사용자 정의 디렉터리로 Hive 또는 Hive Metastore 설치 과정에서 직접 생성하고 설정해주어야 한다고 한다. 해결 방법 hive.metastore.warehouse.dir로 설정할 디렉터리를 생성하고 설정을 업데이트한다. 이 ..

Hadoop EcoSystem 2023.03.28

[Hive] Metastore 설치 및 실행

개요 2023.03.18 - Apache Hive 란? 2023.03.19 - [Hive] Metastore 위 글을 통해 Apache Hive와 Hive의 구성 요소 중 하나인 Metastore 개념을 정리해 보았다. 이 글에서는 Hive metastore 설치 방법을 정리해 둔다. Metastore 유형 중 Remote Metastore로 구성한다. 🤔 왜 이 글은 Hive를 설치하는 게 아니고 Hive Metastore를 설치하는가? 이유는 단순하다. Hive가 아니라 Hive Metastore만 필요하기 때문이다. 기존에는 Hive Metastore를 사용하기 위해선 Hive 자체를 설치해야 했는데, Hive 3부터는 Metastore standalone을 지원해주고 있다. Java 설치 Hive..

Hadoop EcoSystem 2023.03.23

[Hive] Metastore

Hive Metastore Hive는 데이터에 대한 논리적 정보와 파일의 물리적 위치 등과 같은 메타성 정보를 가진다. 메타스토어는 이러한 메타 정보를 저장하고 사용자의 요청에 따라 제공한다. 정보를 제공할 때는 Thrift(Apache Thrift; 이기종간의 통신을 위한 프로토콜)를 사용하고 메타 데이터 자체는 JDBC를 이용해 데이터베이스에 저장한다. 유형 Hive의 메타스토어 유형은 임베디드(Embedded metastore), 로컬(Local metastore), 원격(Remote metastore)으로 구분할 수 있다. 임베디드(Embedded metastore) Hive를 설치하면 기본값으로 Derby를 메타스토어 DB로 사용하는데, 한 번에 한 명의 사용자만 접근할 수 있다. 따라서 운영 ..

Hadoop EcoSystem 2023.03.22
1 2