상세 컨텐츠

본문 제목

Hive metastore(메타스토어)의 유형 및 설정 방식

빅데이터/Hive

by 마니씨 2014. 7. 26. 13:25

본문

Hive metastore(메타스토어)란

하이브는 테이블과 파티션과 관련된 메타정보를 모두 메타스토어에 저장한다.



Hive 메타스토어의 유형

하이브의 메타스토어 유형에는 임베디드 메타스토어(Embedded metastore), 로컬 메타스토어(Local metastore), 원격 메타스토어(Remote metastore) 세가지 유형이 있다.

 



  • 임베디드 메타스토어(Embedded metastore)
    하이브를 설치하면 기본적으로 임베디드 메타스토어를 사용한다. 이 경우 메타스토어가 로컬 장비에 파일로 생성되므로 한번에 하나의 프로세스만 메타스토어에 접근할 수 있다. 따라서 실제 환경에서 사용해서는 안된다.

  • 로컬 메타스토어(Local metastore)
    로컬 메타스토어의 경우 메타데이터가 모두 원격(또는 로컬)의 데이터베이스에 저장된다. 

  • 원격 메타스토어(Remote metastore)
    원격 메타스토어의 경우에도 메타데이터가 모두 원격(또는 로컬)의 데이터베이스에 저장된다. 하지만 로컬 메타스토어와는 달리 메타스토어를 서비스하는 별도의 서버가 기동되며, 클라이언트는 데이터베이스에 집접 쿼리문을 날리는 대신 메타스토어 서버의 중개를 받게 된다. 이때 클라이언트와 메타스토어 서버는 thrift 통신을 사용한다.


 

Hive 메타스토어의 설정 파라미터

하이브의 메타스토어를 설정하는 파라미터는 다음과 같다.


 

 파라미터  설명
 javax.jdo.option.ConnectionURL  메타데이터를 저장하는 DB의 접속 정보
 javax.jdo.option.ConnectionDriverName

 DB에 연결할 때 사용할 JDBC 드라이버명

 hive.metastore.uris

 클라이언트에서 메타스토어 서버와 통신하는 URI

hive.metastore.local 

 임베디드 또는 로컬인 경우 true, 원격인 경우 false

hive.metastore.warehouse.dir

 하이브 테이블이 저장되는 HDFS 상의 경로

 


 


Hive 메타스토어의 유형별 설정 방법

하이브의 메타스토어 유형별로 아래와 같이 설정한다. 기본적으로 아무 설정도 하지 않는다면 임베디드 메타스토어 방식을 사용한다. 아래의 파라미터를 설정하려면 hive-site.xml 파일을 만든 후, 기본 값을 변경할 파라미터만 설정한다.

  • 임베디드 메타스토어(Embedded metastore)


     파라미터

     설정 값

     javax.jdo.option.ConnectionURL

    jdbc:derby:;databaseName=../build/test/junit_metastore_db

    ;create=true

     javax.jdo.option.ConnectionDriverName

    org.apache.derby.jdbc.EmbeddedDriver

     hive.metastore.local 

    true

     hive.metastore.warehouse.dir

    /user/hive/warehouse

     


  • 로컬 메타스토어(Local metastore)


     파라미터  설명
     javax.jdo.option.ConnectionURL

    jdbc:mysql://<host name>/<database name>?

    createDatabaseIfNotExist=true

     javax.jdo.option.ConnectionDriverName

     com.mysql.jdbc.Driver

     javax.jdo.option.ConnectionUserName  <user name>
     javax.jdo.option.ConnectionPassword  <password>
     hive.metastore.local 

    true

     hive.metastore.warehouse.dir

    /user/hive/warehouse 

     


  • 원격 메타스토어(Remote metastore)
    서버는 아래와 같이 설정한다.

     파라미터  설명
     javax.jdo.option.ConnectionURL

    jdbc:mysql://<host name>/<database name>?

    createDatabaseIfNotExist=true

     javax.jdo.option.ConnectionDriverName

     com.mysql.jdbc.Driver

     javax.jdo.option.ConnectionUserName  <user name>
     javax.jdo.option.ConnectionPassword  <password>

     hive.metastore.warehouse.dir

    /user/hive/warehouse 


    클라이언트는 아래와 같이 설정한다.

     파라미터  설명
     hive.metastore.uris

    thrift://<host_name>:<port>

     hive.metastore.local

     false

     hive.metastore.warehouse.dir

     /user/hive/warehouse

     

     

     

 


[참고자료]