Hive 설치
Hive를 이용하면 HDFS에 저장된 데이터를 HiveQL이라는 SQL-Like 언어로 쿼리할 수 있다.
사전 준비
JDK
Hadoop
Hadoop 파일시스템에 데이터파일을 저장하기 때문에 파일 저장소로서 하둡이 필수적이고, Hive가 설치되는 서버에 Hadoop Client가 설치돼 있어야 한다. (Hadoop 서버의 디렉토리를 통채로 복사해놓으면 된다.) 참고 : Hadoop 설치
MySQL
metastore db로 mysql을 이용하기 위해 사전에 설치가 돼 있어야 한다. 참고 : mysql 설치
여기에서는 설치된 mysql 데이터베이스에 아래와 같은 데이터베이스와 사용자를 생성해서 이용한다.
create database hive;
create user hive@localhost identified by 'hive';
grant all privileges on hive.* to hive@localhost;
Hive 설치
hive 시스템 유저 profile
vi ~/.bash_profile
# Hive
export JAVA_HOME=/app/jdk
export HIVE_HOME=/app/hive
export PATH=$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
바이너리 다운로드 및 경로 설정
wget https://archive.apache.org/dist/hive/hive-2.3.0/apache-hive-2.3.0-bin.tar.gz
tar -xvzf apache-hive-2.3.0-bin.tar.gz -C /app/hive/.
mv /app/hive/apache-hive-2.3.0-bin /app/hive/2.3.0
find /app/hive/2.3.0 -mindepth 1 -maxdepth 1 -type d | xargs -I {} ln -s {} /app/hive/.
Hive 설정 파일 수정
cd /app/hive/conf; cp hive-env.sh.template hive-env.sh
hive-env.sh
vi hive-env.sh
Hadoop 설정 파일이 있는 경로로 수정해준다.
HADOOP_HOME=/app/hadoop
hive-site.xml
vi hive-site.xml
파일을 새로 생성하여 아래와 같이 설정한다.
<configuration>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseifNotExist=true&useSSL=false</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.urls</name>
<value>thrift://node5.dat:10000</value>
</property>
</configuration>
- &useSSL=false
- mysql 접속시에 SSL 사용 하지 않도록 지정한다.
mysql driver
기본적으로 jdbc 드라이버가 포함돼 있지 않으므로 아래 URL에서 다운로드한 뒤 업로드한다. 오라클로 넘어가고나서부터 바로 다운로드가 안 되는듯.
https://dev.mysql.com/downloads/connector/j/5.1.html
다운로드 한 jdbc driver를 $HIVE_HOME/lib
경로에 위치시킨다.
mv mysql-connector-java.jar /app/hive/lib/.
metastore 스키마 생성.
다음 명령으로 mysql에 기본 스키마를 생성한다.
schematool -initSchema -dbType mysql --verbose
Hive 기동
먼저 hiveserver2 를 실행하고,
hive --service hiveserver2 &
metastore를 실행하면 끝.
hive --service metastore &