실무에서는 embedded database인 derby로 metastore를 잘 구성하지 않는다. mysql을 설치하여 Hive metastore과 Ambari metastore를 구축해보려 한다.
일회성을 가지는 컨테이너에 DB를 구축한다는 것은 많은 상황에서 좋지 않다. 로컬환경에 이미 설치 되어있는 mysql과 연결을 하였다.
Hive에서 mysql에 연결하기 위해선 jdbc 패키지가 필요하니, hive의 libs에 먼저 넣어준다.
> wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.28.tar.gz
> tar -zxvf mysql-connector-java-8.0.28.tar.gz
> mv mysql-connector-java-8.0.28.jar $HIVE_HOME/lib
Plain Text
복사
create schema metastore;
create user 'hive'@[IPv4 address] IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@[IPv4 address] with grant option
SQL
복사
workbench에서 연결을 확인한 후, hive를 설정하였다.
>vim $HIVE_HOME/conf/hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.0.29:3306/metastore?allowPublicKeyRetrieval=true&useSSL=false&createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>[hive 비밀번호]</value>
</property>
<property>
<name>hive.metastore.schema.verfication</name>
<value>false</value>
</property>
</configuration>
XML
복사
metastore 초기화를 진행한다.
> $HIVE_HOME/bin/schematool -dbType mysql -initSchema
Plain Text
복사
초기화가 된 모습