-
Docker 로 Hive 구현하기Hive 2023. 12. 16. 17:27728x90반응형
- 목차
소개.
Docker Container 를 활용하여 Hive 를 간단하게 구현해보려고 합니다.
Docker Hub 의 apache/hive 의 자료를 토대로 진행하였습니다.
https://hub.docker.com/r/apache/hive
구현하기.
아래 명령어를 실행하여 Hive Server Container 를 실행할 수 있습니다.
docker run -d \ -p 10000:10000 -p 10002:10002 \ --env SERVICE_NAME=hiveserver2 \ --name hive \ apache/hive:3.1.3
별다른 설정없이 Derby 데이터베이스를 metastore 로 사용합니다.
docker ps 의 결과로 생성된 Hive Container 를 확인할 수 있습니다.
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0271a835511f apache/hive:3.1.3 "sh -c /entrypoint.sh" 4 minutes ago Up 4 minutes 0.0.0.0:10000->10000/tcp, 9083/tcp, 0.0.0.0:10002->10002/tcp hive
웹 UI 접속해보기.
http://localhost:10002 주소를 통해서 Hive Web UI 에 접속할 수 있습니다.
Hive Table 생성하기.
먼저 beeline CLI 를 통해서 HiveServer 와 Connection 을 생성해보겠습니다.
docker exec -it hive beeline -u 'jdbc:hive2://localhost:10000/default'
docker exec 를 통해서 beeline 를 실행시키면
아래와 같은 형식의 출력을 확인할 수 있습니다.
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/hive/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Connecting to jdbc:hive2://localhost:10000/default Connected to: Apache Hive (version 3.1.3) Driver: Hive JDBC (version 3.1.3) Transaction isolation: TRANSACTION_REPEATABLE_READ Beeline version 3.1.3 by Apache Hive
아래 명령어를 통해서 간단한 Table 을 생성해보겠습니다.
use default; create table test ( id int, name string, age int );
아래와 같은 형식으로 데이터를 생성할 수 있습니다.
insert into test (id, name, age) values (1, 'Andy', 33)
[2023-12-17 14:29:27] completed in 15 s 933 ms
그리고 아래 쿼리를 통해서 데이터를 조회할 수 있습니다.
select * from test;
INFO : Compiling command(queryId=hive_20231217053010_2bb8df64-0b9f-4546-b21d-80067a133cdc): select * from test INFO : Concurrency mode is disabled, not creating a lock manager INFO : Semantic Analysis Completed (retrial = false) INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:test.id, type:int, comment:null), FieldSchema(name:test.name, type:string, comment:null), FieldSchema(name:test.age, type:int, comment:null)], properties:null) INFO : Completed compiling command(queryId=hive_20231217053010_2bb8df64-0b9f-4546-b21d-80067a133cdc); Time taken: 0.311 seconds INFO : Concurrency mode is disabled, not creating a lock manager INFO : Executing command(queryId=hive_20231217053010_2bb8df64-0b9f-4546-b21d-80067a133cdc): select * from test INFO : Completed executing command(queryId=hive_20231217053010_2bb8df64-0b9f-4546-b21d-80067a133cdc); Time taken: 0.002 seconds INFO : OK INFO : Concurrency mode is disabled, not creating a lock manager +----------+------------+-----------+ | test.id | test.name | test.age | +----------+------------+-----------+ | 1 | Andy | 33 | +----------+------------+-----------+ 1 row selected (0.413 seconds)
반응형'Hive' 카테고리의 다른 글
Hive & Hadoop 연결하기 (0) 2023.12.17 Hive MySQL Metastore 알아보기 (0) 2023.12.17