IT Log

Hive Metastore 본문

Open Source/Apache

Hive Metastore

newly0513 2020. 9. 5. 15:35
728x90
반응형

기본 구성 매개변수 (Basic Configuration Parameters)

구성 매개변수 설명
javax.jdo.option.ConnectionURL Metadta를 포함하는 데이터 저장소에 대한 JDBC 연결 문자열
javax.jdo.option.ConnectionDriverName Metadta를 포함하는 데이터 저장소의 JDBC 드라이버 클래스 이름
hive.metastore.uris Hive는 이러한 URI 중 하나에 연결하여 원격 Metastore에 대한 메타 데이터 요청을 수행합니다. (쉼표로 구분 된 URI 목록)
hive.metastore.local 로컬 또는 원격 메타 스토어 (Hive 0.10부터 제거됨 : hive.metastore.uris가 비어있는 경우 로컬 모드, 그렇지 않으면 원격으로 가정)
hive.metastore.warehouse.dir 기본 테이블에 대한 기본 위치의 URI

Local / Embedded Metastore Database (Derby)

 Derby는 Embedded Metastore의 기본 Database입니다. Embedded Metastore Database는 한 번에 하나의 Process만 Metastore Database에 연결할 수 있으므로, 주로 단위테스트에 사용됩니다. Metastore에 접근할 수 있도록 Derby를 네트워크 서버로 실행하려는 경우 Server Mode Derby를 설치하여 실행합니다.

구성 매개변수 구성 값 설명
javax.jdo.option.ConnectionURL jdbc:derby:;databaseName=../build/test/junit_metasore_db;create=true Derby Database 위치는 hive/trunk/build 아래
javax.jdo.option.ConnectionDriverName org.apache.derby.jdbc.EmbeddedDriver Derby 임베디드 JDBC Driver 클래스
hive.metastore.warehouse.dir file://${user.dir}/../build/ql/test/data/warehouse 단위 테스트 데이터는 로컬 파일 시스템에 저장

[Derby Server Mode] : cwiki.apache.org/confluence/display/Hive/HiveDerbyServerMode


Remote Metastore Database (MySQL)

구성 매개변수 구성 값 설명
javax.jdo.option.ConnectionURL jdbc:mysql://<host name>/<database name>?createDatabaseIfNotExist=true 메타 데이터는 MySQL 서버에 저장됩니다.
javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver MySQL JDBC 드라이버 클래스
javax.jdo.option.ConnectionUserName <user name> MySQL 서버에 연결하기위한 사용자 이름
javax.jdo.option.ConnectionPassword <password> MySQL 서버에 연결하기위한 비밀번호

Local / Embedded Metastore Server

각 Hive Client는 Database에 대한 연결을 열고, SQL 쿼리를 만듭니다. Local 저장소로 Hive 쿼리가 실행되는 컴퓨터에서 Database에 액세스 할 수 있는지 확인합니다.

구성 매개변수 구성 값 설명
hive.metastore.uris Local 저장소이므로 필요없음  
hive.metastore.local true Local 저장소 (Hive 0.10에서 제거됨, 구성 설명 섹션 참조)
hive.metastore.warehouse.dir <base hdfs path> HDFS에서 외부가 아닌 Hive Table 기본 위치를 가리킵니다.

결론적으로 Local / Embedded Metastore Database에 대한 구성을 마쳤다면 추가로 작성할 필요가 없습니다.


Remote Metastore Server

 Hive Client는 Metastore Server에 연결하여 Metastore에서 Metadata를 쿼리합니다. Metastore Server와 Client는 Thrift Protocol을 사용하여 통신합니다. 

hive --service metastore

 

Server 구성 매개변수

구성 매개변수 구성 값 설명
javax.jdo.option.ConnectionURL jdbc:mysql://<host name>/<database name>?createDatabaseIfNotExist=true 메타 데이터는 MySQL 서버에 저장됩니다.
javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver MySQL JDBC 드라이버 클래스
javax.jdo.option.ConnectionUserName <user name> MySQL 서버에 연결하기위한 사용자 이름
javax.jdo.option.ConnectionPassword <password> MySQL 서버에 연결하기위한 비밀번호
hive.metasore.warehouse.dir <base hdfs path> Hive 테이블의 기본 위치입니다.
hive.metasore.thrift.bind.host <host_name> Metastore 서비스를 바인딩할 호스트 이름입니다. 비어 있으면 "localhost"가 사용됩니다. 이 구성은 Hive 4.0.0 이상에서 사용할 수 있습니다.

 

Clinet 구성 매개변수

구성 매개변수 구성 값 설명
hive.metastore.uris thrift://<host_name>:<port> Thrift Metastore Server의 호스트 및 포트입니다. hive.metastore.thrift.bind.host가 지정된 경우 호스트는 해당 구성과 동일해야합니다. 
hive.metastore.local false Metastore는 원격입니다.
참고 : Hive 0.10부터는 더 이상 필요하지 않습니다.
hive.metastore.uris 설정만으로 충분합니다.
hive.metastore.warehouse.dir <base hdfs path> HDFS에서 외부가 아닌 Hive Table 기본 위치를 가리킵니다.

Metasore Database List

Database Suppored Version Parameter Values 비고
MySQL 5.6.17 이상 mysql  
Postgres 9.1.13 이상 postgres  
Oracle 11g 이상 oracle 빈 문자열을 null로 유지
MS SQL Server 2008 R2 이상 mssql  
728x90
반응형

'Open Source > Apache' 카테고리의 다른 글

Hive Metastore Derby  (0) 2021.03.24
Hive Metastore MySQL  (0) 2020.09.07
Zookeeper 구성 ( Multi-Server )  (0) 2020.09.02
Zookeeper 구성 (Standalone)  (0) 2020.09.02
Hive 구성  (0) 2020.09.01
Comments