[컴] 하둡, Hive-Metastore

Hive-Metastore

우리가 DB 에서 table 의 정보나, relation 등을 쉽게 하려면 관련정보를 어딘가에 가지고 있어야 한다. HIVE 도 database 이기에 table이나 relation 관련 정보를 어딘가에 저장해 놓을 필요가 있다. 그것을 해주는 것이 Hive-Metastore 라고 보면 된다.

Metastore 에는 database 가 우리의 DB, tables, relation들의 모든 정보들을 Metadata 로 가지고 있다. Hive-Metastore system 도 마찬가지다. table 와 relation 들에 대한 모든 정보를 이 Hive-Metastore system 이 가지고 있다.

  • 모든 Hive 구현체들은 metastore service 들이 필요하다. 이 metastore service 에 metadata 를 저장한다.
  • metastore service는 rdb 의 table 을 사용해서 구현된다.
  • 기본적으로 , Hive는 built-in Derby SQL server 를 사용한다. Derby는 single process storage 를 제공한다. 그래서 Derby 를 사용하면, Hive CLI instance 들을 실행할 수 없다.
  • Hive 를 개인적으로 실행하거나 개발용으로 사용할 때는 Derby 로 좋지만, 이것을 cluster에서 사용하길 원할 때는 MySQL 또는 다른 RDBMS 가 필요하다.
  • hive-site.xml 에서 metastore 위치를 지정할 수 있다.

mysql 사용을 위한 hive-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost/metastore</value>
        <description>metadata is stored in a MySQL server</description>
    </property>
     
    <property>
        <name>javax.jdo.option.ConnectionURL.metastore_spark_plsql</name>
        <value>jdbc:mysql://localhost/metastore_sql</value>
        <description>user metadata is stored in a MySQL server</description>
    </property>
     
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>MySQL JDBC driver class</description>
    </property>
     
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>user</value>
        <description>user name for connecting to mysql server </description>
    </property>
     
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>password</value>
        <description>password for connecting to mysql server </description>
    </property>
     
</configuration>

hive-site.xml

hive-default.xml.template에는 다양한 설정에 대한 기본값이 포함되어 있다. Hive 배포에 미리 패키징된 이 기본값을 재정의하려면 hive-site.xml을 만들고 설정하자.

hive-default.xml.directory<hive_root>/conf 디렉토리에 있으며 hive-site.xml도 같은 디렉토리에 있어야 한다.

템플릿 파일 hive-default.xml.template은 (Hive 0.9.0 기준) Hive에서 전혀 사용되지 않는다. configuration 옵션의 표준 목록(canonical list)은 HiveConf Java class에서만 관리된다.(HiveConf) 템플릿 파일에는 hive-site.xml에 필요한 형식(formatting)이 있으므로 템플릿 파일의 configuration 변수를 hive-site.xml에 붙여넣은 다음 원하는 configuration으로 값을 변경하면 된다.

Hive 0.9.0 ~ 0.13.1은 HiveConf.java 에서 직접생성되지 않아서 일부 configuration 값들이 없을 수도 있고, 기본값과 설명도 최신이 아닐 수 있다. 그러나 Hive 0.14.0부터는 템플릿 파일이 HiveConf.java에서 직접 생성되므로 configuration 변수 및 기본값에 대한 신뢰할 수 있는 원본이다.

administrative configuration 변수는 다음과 같다. 사용자 변수는 Hive configuration 속성에 나열됩니다. Hive 0.14.0부터는 SHOW CONF 명령을 사용하여 configuration 변수에 대한 정보를 표시할 수 있습니다.

hive-default.xml.template contains the default values for various configuration variables that come prepackaged in a Hive distribution. In order to override any of the values, create hive-site.xml instead and set the value in that file as shown above.

hive-default.xml.template is located in the conf directory in your installation root, and hive-site.xml should also be created in the same directory.

Please note that the template file hive-default.xml.template is not used by Hive at all (as of Hive 0.9.0) – the canonical list of configuration options is only managed in the HiveConf java class. The template file has the formatting needed for hive-site.xml, so you can paste configuration variables from the template file into hive-site.xml and then change their values to the desired configuration.

In Hive releases 0.9.0 through 0.13.1, the template file does not necessarily contain all configuration options found in HiveConf.java and some of its values and descriptions might be out of date or out of sync with the actual values and descriptions. However, as of Hive 0.14.0 the template file is generated directly from HiveConf.java and therefore it is a reliable source for configuration variables and their defaults.

The administrative configuration variables are listed below. User variables are listed in Hive Configuration Properties. As of Hive 0.14.0 you can display information about a configuration variable with the SHOW CONF command.

See Also

  1. AdminManual Configuration - Apache Hive - Apache Software Foundation : hive-site.xml 관련 설정 값들에 대한 설명

Reference

  1. Hive-Metastore: A Basic Introduction - DZone Database

댓글 없음:

댓글 쓰기