Hive metastore(메타스토어)란
하이브는 테이블과 파티션과 관련된 메타정보를 모두 메타스토어에 저장한다.
Hive 메타스토어의 유형
하이브의 메타스토어 유형에는 임베디드 메타스토어(Embedded metastore), 로컬 메타스토어(Local metastore), 원격 메타스토어(Remote metastore) 세가지 유형이 있다.
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 파일을 만든 후, 기본 값을 변경할 파라미터만 설정한다.
파라미터 |
설정 값 |
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 |
파라미터 | 설명 |
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 |
[참고자료]