IT Log
Hive Metastore MySQL 본문
Hive 구성 : newly0513.tistory.com/147
요구사항
- Java
- 1.8 이상
- 설치 : yum install -y java-1.8.0-openjdk-devel.x86_64
- 1.8 이상
- Hadoop
- Hadoop 구성 : newly0513.tistory.com/144
- Hive
- Hive 구성 : newly0513.tistory.com/147
- Connector/J
- 8.0.21
Local Metastore
MySQL Community Server 8.0.21
RPM Download & Install
wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm; \
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
Installing MySQL
Repository가 잘 설치되었다면, 아래 명령 실행 후 8.0.21버전으로 mysql이 설치됩니다.
yum -y install mysql-community-server
Starting the MySQL Server
mysql 시작과 부팅시 자동시작을 설정합니다.
systemctl start mysqld; \
systemctl enable mysqld
Temporary password
mysql 초기 비밀번호는 mysqld.log 파일에 설정되어 있습니다. 확인 후 로그인할 때 사용합니다.
grep 'temporary password' /var/log/mysqld.log
Login Mysql
아래 명령을 실행 후 mysqld.log에서 확인한 비밀번호를 입력하여 로그인합니다.
mysql -uroot -p
Change the root password
비밀번호가 짧거나 단순할 경우 보안에 의해서 오류가 발생하니 적당한 비밀번호를 설정합니다.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd';
FLUSH PRIVILEGES;
Create Database & User
Database를 생성한 해당 DB에 접속한 뒤 User를 생성합니다.
create database hive;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
Logout
quit;
Connector/J 버전
Connector version | JDBC version | MySQL version | JRE required | JDK Required | Status |
5.1 | 3.0, 4.0, 4.1, 4.2 | 5.6, 5.7, 8.0 | JRE 5이상 | JDK5, JDK8이상 | 일반 공급 |
8.0 | 4.2 | 5.6, 5.7, 8.0 | JRE 8이상 | JDK8 이상 | 일반 공급(권장) |
Connector/J 8.0.21
Connector/J Download
$HIVE_HOME/lib 에 mysql connector를 다운받습니다.
cd /usr/local/hive/lib; \
wget https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar
Hive Meatastore Configuration
hive-stie.xml
- hive.metastore.warehouse.dir : hdfs://<host>:<port>/<path>
- javax.jdo.option.ConnectionURL : jdbc:mysql://<host>:<port>/<datanase name>?
- javax.jdo.option.ConnectionDriverName : com.mysql.cj.jdbc.Driver
- javax.jdo.option.ConnectionUserName : <user name>
- javax.jdo.option.ConnectionPassWord : <password>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://master:9000/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?serverTimezone=UTC</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>P@ssw0rd</value>
</property>
</configuration>
Start Hive
Hive Schema 초기화
- schematool 초기화 사용법 : schematool -dbType <db type> -initSchema
schematool -dbType mysql -initSchema
Hive CLI
hive
Hive Metastore Test
Create Table
Test로 Table을 생성합니다.
create table hive_mysql_test(hive int, mysql int);
MySQL Login
hive 유저를 생성했을 때 설정한 비밀번호를 입력하여 접속합니다.
mysql -u hive -p
Table 확인
Hive Metastore가 잘 생성되었을 경우 hive schema Table이 생성되어 있습니다. 그리고 Hive에서 생성한 Table은 'TBLS'라는 Table을 확인해보면 아래와 같이 출력됩니다.
SHOW TABLES;
SELECT * FROM TBLS;
'Open Source > Apache' 카테고리의 다른 글
HBase 구성 (Standalone) (0) | 2021.03.24 |
---|---|
Hive Metastore Derby (0) | 2021.03.24 |
Hive Metastore (0) | 2020.09.05 |
Zookeeper 구성 ( Multi-Server ) (0) | 2020.09.02 |
Zookeeper 구성 (Standalone) (0) | 2020.09.02 |