Hadoop EcoSystem

[Hive] Metastore 설치 및 실행

비번변경 2023. 3. 23. 23:30

개요

2023.03.18 - Apache Hive 란?

2023.03.19 - [Hive] Metastore

위 글을 통해 Apache Hive와 Hive의 구성 요소 중 하나인 Metastore 개념을 정리해 보았다.

 

이 글에서는 Hive metastore 설치 방법을 정리해 둔다. Metastore 유형 중 Remote Metastore로 구성한다.

🤔 왜 이 글은 Hive를 설치하는 게 아니고 Hive Metastore를 설치하는가?
이유는 단순하다. Hive가 아니라 Hive Metastore만 필요하기 때문이다.
기존에는 Hive Metastore를 사용하기 위해선 Hive 자체를 설치해야 했는데, Hive 3부터는 Metastore standalone을 지원해주고 있다.

 

 

Java 설치

Hive 버전에 따라 필요한 Java 버전은 아래와 같다. 이 글에선 3.x을 사용할 것이므로 Java 8을 설치한다.

Hive Version Java Version
Hive 1.0 Java 6
Hive 1.1 Java 6
Hive 1.2 Java 7
Hive 2.x Java 7
Hive 3.x Java 8
Hive 4.x Java 8

 

설치 명령어

apt install openjdk-8-jdk

 

 

Hadoop 설치

Hive는 Hadoop 설치가 필요한데, Hive 3.x 버전은 Hadoop 3.x 버전을 요구한다. 설치 방법은 아래를 참고한다.

 

참고 : 2023.03.19 - [Ubuntu/Hadoop] Single Node/Standalone 설치

# 다운로드
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

# /opt/ 아래에 압축 해제
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/

# 디렉터리 소유자 변경
chown hadoop:hadoop /opt/hadoop-3.3.4/ -R

# 심볼릭 링크 설정
ln -s /opt/hadoop-3.3.4 /opt/hadoop

 

 

MySQL 설치 및 DB 설정

Hive Metastore DB로는 MySQL을 설치하여 사용한다. PostgreSQL도 많이 사용하는 것 같다.

 

설치 및 실행

apt install mysql-server
systemctl start mysql

 

접속

mysql -u root -p

 

 

Hive Metastore 서비스 계정 생성 및 권한 부여

-- 데이터베이스 생성
CREATE DATABASE hmsdb;

-- 사용자 생성
CREATE USER 'hms'@'%' IDENTIFIED WITH mysql_native_password BY 'hms';

-- 사용자 권한 부여
GRANT ALL PRIVILEGES ON hmsdb.* TO 'hms'@'%'; 
GRANT FILE ON *.* TO 'hms'@'%';

 

 

Hive metastore 설치 및 설정

Hive metastore는 압축 파일을 내려받아 압축 파일을 해제하는 방식으로 설치할 수 있다. 아래 다운로드 주소에서 bin 파일을 다운로드한다. 

다운로드 주소 : https://downloads.apache.org/hive/

 

# Hive Metastore 다운로드
wget https://downloads.apache.org/hive/hive-standalone-metastore-3.0.0/hive-standalone-metastore-3.0.0-bin.tar.gz

# /opt/ 아래에 압축 해제
tar -zxvf hive-standalone-metastore-3.0.0-bin.tar.gz -C /opt/

# 디렉터리 소유자 변경
chown hadoop:hadoop /opt/apache-hive-metastore-3.0.0-bin -R

# 심볼릭 링크 설정
ln -s /opt/apache-hive-metastore-3.0.0-bin /opt/hive-metastore

 

metastore 설정

metastore 구성 파일인 conf/metastore-site.xml에 아래 내용을 추가한다.

# $HIVE_METASTORE_HOME/conf/metastore-site.xml

<configuration>
  <property>
    <name>metastore.thrift.uris</name>
    <value>thrift://localhost:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>
  <property>
    <name>metastore.task.threads.always</name>
    <value>org.apache.hadoop.hive.metastore.events.EventCleanerTask</value>
  </property>
  <property>
    <name>metastore.expression.proxy</name>
    <value>org.apache.hadoop.hive.metastore.DefaultPartitionExpressionProxy</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hmsdb?createDatabaseIfNotExist=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hms</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hms</value>
  </property>
  <property>
    <name>fs.s3a.server-side-encryption-algorithm</name>
    <value>AES256</value>
  </property>
</configuration>

 

 

JDBC 커넥터 설치

Hive Metastore가 MySQL에 연결하기 위해 사용하는 데이터베이스 드라이버(com.mysql.cj.jdbc.Driver)를 설치한다.

다운로드 주소 : https://dev.mysql.com/downloads/connector/j/

 

OS는 Platform Independent로 선택하여 다운로드한다.

 

JDBC 커넥터 설치

# 다운로드
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.32.tar.gz

# 압축 해제
tar -zxvf mysql-connector-j-8.0.32.tar.gz

# hive-metastore 라이브러리 경로로 복사
cp ~/mysql-connector-j-8.0.32/mysql-connector-j-8.0.32.jar /opt/hive-metastore/lib/

 

환경 변수 설정

HADOOP_HOME 변수를 설정한다.

echo 'export HADOOP_HOME=/opt/hadoop' >> ~/.bashrc
source ~/.bashrc

 

 

Hive Metastore DB 초기화

아래 명령어로 Metastore DB를 초기화한다.

cd /opt/hive-metastore/
./bin/schematool -initSchema -dbType mysql

MySQL에 접속해서 테이블을 확인해 보면 DB에 테이블이 추가된 것을 확인할 수 있다.

 

 

 

실행

아래의 명령어로 Hive metastore를 실행시킬 수 있다.

$HADOOP_HOME/bin/start-metastore

 

 

참고 문서

https://box0830.tistory.com/355

https://www.linkedin.com/pulse/presto-sql-s3-abhishek-gupta

https://github.com/apache/hive

 

728x90