ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 로 Hive 구현하기
    Hive 2023. 12. 16. 17:27
    728x90
    반응형

    - 목차

     

    소개.

    Docker Container 를 활용하여 Hive 를 간단하게 구현해보려고 합니다.

    Docker Hub 의 apache/hive 의 자료를 토대로 진행하였습니다.

    https://hub.docker.com/r/apache/hive

     

    Docker

     

    hub.docker.com

     

     

    구현하기.

    아래 명령어를 실행하여 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 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
Designed by Tistory.