내 잡다한 노트
Hive 메타스토어 본문
하이브의 메타정보는 파일의 물리적인 위치와 데이터에 대한 논리적인 정보로 구분할 수 있다.
이 메타정보를 보관하고 사용자의 요청에 따라 관련 정보를 제공하는 곳이 하이브 메타스토어이다.
메타스토어 타입은 실행 유형에 따라 3가지로 나뉜다.
1. 임베디드 메타스토어
기본설정의 하이브는 더비 DB를 사용하게 된다. 이때, 이 메타스토어는 한번에 한명의 유저만 접근할 수 있다.
hive-site.xml 설정
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:metastore_db;create=true </value>
<description>JDBC connect string for a JDBC metastore </description>
</property>
2. 로컬 메타스토어
로컬 메타스토어는 하이브와 같은 JVM에서 동작한다.
메타 데이터는 외부의 RDBMS에 저장한다. 따라서 여러 사용자가 동시에 이용할 수 있다.
hive-site.xml 설정
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://[IP]:[port]/[데이터베이스 이름]</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.mariadb.jdbc.Driver</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>[사용자명]</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>[암호]</value>
<description>password to use against metastore database</description>
</property>
3. 원격 메타스토어
원격 메타스토어는 메타스토어가 별도의 JVM에서 동작한다.
쓰리프트 프로토콜을 이용하여 접속한다.
hive-site.xml 설정
<property>
<name>hive.metastore.uris</name>
<value>thrift://[메타스토어 IP]:[메타스토어 Port]</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
주요 테이블
DBS | 데이터베이스 정보 |
TBLS | 테이블 정보 |
PARTITIONS | 파티션 정보 |