Apache Hive 공식 홈페이지 에서 다운로드한다.
mkdir -p /home/metastore/apps
cd /home/metastore/apps
# Hadoop 클라이언트 라이브러리 (Hive 의존성)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.4.1/hadoop-3.4.1.tar.gz
tar -xvzf hadoop-3.4.1.tar.gz
# Hive (Metastore 포함)
wget https://dlcdn.apache.org/hive/hive-4.0.1/apache-hive-4.0.1-bin.tar.gz
tar -xvzf apache-hive-4.0.1-bin.tar.gz
# PostgreSQL JDBC 드라이버 (Metastore 백엔드로 PG 사용 시)
wget https://jdbc.postgresql.org/download/postgresql-42.7.4.jar
cp postgresql-42.7.4.jar /home/metastore/apps/apache-hive-4.0.1-bin/lib/
# 심볼릭 링크
ln -s /home/metastore/apps/hadoop-3.4.1 /home/metastore/hadoop
ln -s /home/metastore/apps/apache-hive-4.0.1-bin /home/metastore/hive
# 환경 변수
cat <<'EOF' | tee /home/metastore/.bash_profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export HOME=/home/metastore
export HADOOP_HOME=$HOME/hadoop
export HIVE_HOME=$HOME/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH
EOF
source /home/metastore/.bash_profile
$HIVE_CONF_DIR/hive-env.shexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export HADOOP_HOME=/home/metastore/hadoop
export HIVE_HOME=/home/metastore/hive
export HIVE_CONF_DIR=/home/metastore/hive/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib,$HIVE_HOME/auxlib
$HIVE_CONF_DIR/hive-site.xml<configuration>
<property>
<n>javax.jdo.option.ConnectionURL</n>
<value>jdbc:postgresql://metastore.haedongg.net:5432/metastore</value>
</property>
<property>
<n>javax.jdo.option.ConnectionDriverName</n>
<value>org.postgresql.Driver</value>
</property>
<property>
<n>javax.jdo.option.ConnectionUserName</n>
<value>metastore</value>
</property>
<property>
<n>javax.jdo.option.ConnectionPassword</n>
<value>${METASTORE_DB_PASSWORD}</value>
</property>
<property>
<n>hive.aux.jars.path</n>
<value>/home/metastore/hive/auxlib,/home/metastore/hive/lib</value>
</property>
<!-- Metastore Thrift Server -->
<property>
<n>hive.metastore.uris</n>
<value>thrift://metastore.haedongg.net:9083</value>
</property>
<property>
<n>hive.metastore.port</n>
<value>9083</value>
</property>
<!-- Configuration for run Hive Metastore without Hadoop (local mode test) -->
<property>
<n>hive.metastore.schema.verification</n>
<value>false</value>
</property>
<property>
<n>hive.metastore.warehouse.dir</n>
<value>hdfs://haedongcluster/user/hive/warehouse</value>
</property>
<property>
<n>hive.metastore.event.db.notification.api.auth</n>
<value>false</value>
</property>
</configuration>
# PostgreSQL 백엔드
$HIVE_HOME/bin/schematool -initSchema -dbType postgres
# MySQL/MariaDB 백엔드 사용 시
# $HIVE_HOME/bin/schematool -initSchema -dbType mysql
# 기본 실행
nohup $HIVE_HOME/bin/hive --service metastore > $HIVE_HOME/logs/metastore.log 2>&1 &
# 포트 명시
# nohup $HIVE_HOME/bin/hive --service metastore -p 9083 > $HIVE_HOME/logs/metastore.log 2>&1 &
/etc/systemd/system/hive-metastore.service
[Unit]
Description=Apache Hive Metastore
After=network.target
[Service]
Type=simple
User=metastore
Group=metastore
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"
Environment="HADOOP_HOME=/home/metastore/hadoop"
Environment="HIVE_HOME=/home/metastore/hive"
Environment="HIVE_CONF_DIR=/home/metastore/hive/conf"
ExecStart=/home/metastore/hive/bin/hive --service metastore
Restart=on-failure
StandardOutput=append:/var/log/hive/metastore.log
StandardError=append:/var/log/hive/metastore.log
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable hive-metastore --now
초창기에는 Hive SQL 엔진을 사용하기 위한 메타스토어로써 HiveServer와 함께 배포됐지만, 현재는 Metastore만 따로 배포된다. 3.X 버전은 EOL이며, 4.X는 현재 Hive 패키지로 배포된다. ↩︎