IT Log
Hive Metastore 본문
기본 구성 매개변수 (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 |
'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 |