1. RHive 튜토리얼 부록 2 - Hive 설치
RHive tutorial - Hive 설치
RHive 는 R 과 Hive 를 연결하여 R 코드를 이용해 대용량데이터를 처리하고 분석할 수
있게 해준다. 하지만 Hive 는 Hadoop 의 애드온(add on)중 하나로 Hadoop 없이
단독으로는 사용할 수 없다.
이 튜토리얼에서는 Hadoop 설치 튜토리얼에서 소개한 Hadoop 환경을 설정하고 난
뒤에 Hive 를 추가로 설치하고 설정하는 방법을 설명한다.
우선 Hive 는 Hadoop 과는 달리 Hadoop 이 설치된 모든 서버에 설치할 필요는 없다.
Hadoop client 가 작동할 서버에 설치하면 되며 이것은 Hadoop 의 Job node 중 하나
일 수도 있으며 전혀 다른 별개의 client 용 접속서버일 수 있다. 이것은 흔히
gateway 라고도 불리워지며 사용자가 구성하기에 따라 달라진다. 보통의 경우
gateway 는 별도의 서버나 랩탑 또는 데스트탑에 설치하는 것을 권장하지만 여기서는
편리하게 셋업하기 위해서 Hadoop name node 에 Hive 를 설치할 것이다.
Hive 를 다운로드 받기
Hive 도 Hadoop 와 마찬가지로 Java 로 작성되어 있기 때문에 별도의 설치 소프트웨어
없이 파일을 다운로드 받아 압축을 해제하는 것만으로 기본적인 설치과정을 끝낼 수
있다.
Hive 의 최신 버전은 아래의 URL 에서 찾을 수 있다. 이 튜토리얼을 작성하는 시점의
http://www.apache.org/dist//hive/hive-0.7.1/hive-0.7.1-bin.tar.gz
이 튜토리얼의 작성 시점에서의 최종 버전(latest stable version)은 0.7.1 이며 RHive 는
Hive 의 버전에 큰 특성을 따르지 않으므로 사용자가 원한다면 스냅샷(snapshot)버전을
따로 빌드해서 사용해도 좋다.
만약 0.8.x 버전이 release 가 되었다면 그 버전을 사용해도 된다.
다음과 같이 Hive 를 설치할 서버에 접속하고 Hive 의 최신버전을 다운로드 받는다.
ssh
root@10.1.1.1
mkdir
hive_stable
cd
hive_stable
2.
wget
http://www.apache.org/dist//hive/hive-‐0.7.1/hive-‐0.7.1-‐
bin.tar.gz
tar
xvfz
./hive-‐0.7.1-‐bin.tar.gz
mkdir
/service
mv
./hive-‐0.7.1-‐bin
/service
MySQL 설정하기
Hive 의 repository 를 MySQL 로 선택해서 그것을 사용할 것이다.
Hive 는 기본(default)로 SQLite 을 사용하도록 되어 있지만 Hive 의 여러 유저가 동시에
사용할 수 있도록 하려면 MySQL 이나 다른 DB 를 repository 로 사용할 수 있도록 해야
하므로 이 튜토리얼에서는 MySQL 을 사용할 것이다.
MySQL 은 Hive 가 설치될 서버와 다른 서버에 설치되어도 되지만 이 튜토리얼에서는
편의상 역시 Hadoop name node, 즉 Hive 가 설치된 서버에 MySQL 도 함께 설치할
것이다.
다음과 같이 yum 을 이용해서 mysql client 와 server 를 설치한다.
yum
install
mysql
mysql-‐server
설치 후 mysql server 를 작동시킨다.
/etc/init.d/mysqld
start
이제 MySQL 에 Hive 가 사용할 데이터베이스를 하나 생성한다.
이 튜토리얼에서는 Hive 가 사용할 데이터베이스 이름을 “metastore”로 할 것이다.
다음과 같이 mysql 에 root 계정으로 해서 데이터베이스를 생성한다.
mysql>
CREATE
DATABASE
metastore;
mysql>
USE
metastore;
mysql>
SOURCE
/service/hive-‐
0.7.1/scripts/metastore/upgrade/mysql/hive-‐schema-‐
0.7.0.mysql.sql;
3. 여기서 "/service/hive-0.7.1"는 Hive 의 HOME 디렉토리이며
"$HIVE_HOME/scripts/metastore/upgrade/mysql" 에는
Hive 를 위해서 MySQL 을 초기화하거나 업그레이드 할 수 있도록 해주는 SQL 파일들이
있으며 자신의 버전에 맞는 것을 실행해서 셋업을 마치도록 한다.
이제 Hive 가 사용할 MySQL user 를 하나 생성(create)하고 metastore 라는
데이터베이스를 사용할 수 있도록 권한을 설정한다.
mysql>
CREATE
USER
'hiveuser'@'%'
IDENTIFIED
BY
'password';
mysql>
GRANT
SELECT,INSERT,UPDATE,DELETE
ON
metastore.*
TO
'hiveuser'@'%';
mysql>
REVOKE
ALTER,CREATE
ON
metastore.*
FROM
'hiveuser'@'%';
Hive 사용을 위한 MySQL 설정이 완료되었다.
이제 Hive 에서 MySQL 에 접속할 수 있도록 설정하는 것이 필요하다.
Hive 에서 MySQL 을 접속하도록 하려면 JDBC 가 필요하지만 Hive 는 MySQL JDBC 을
포함하고 있지 않다.
MySQL 사이트에서 다운로드 받은 후 설치된 Hive 에 자신이 직접 복사해서 넣어 주어야
한다.
JDBC 는 아래의 사이트에서 다운로드 할 수 있다.
http://dev.mysql.com/downloads/
아래와 같이 다운로드 받고 압축을 해제하여 jar 파일을 Hadoop 의 lib 디렉토리로
복사한다.
$
curl
http://dev.mysql.com/get/Downloads/Connector-‐J/mysql-‐
connector-‐java-‐
5.1.18.tar.gz/from/http://mirror.services.wisc.edu/mysql/
$
tar
xvfz
mysql-‐connector-‐java-‐5.1.18.tar.gz
$
cp
./mysql-‐connector-‐java-‐5.1.18/mysql-‐connector-‐java-‐5.1.18-‐
bin.jar
/service/hive-‐0.7.1/lib/
이제 Hive 의 configuration 을 변경한다.
$HIVE_HOME/conf/hive-site.xml 를 편집기로 열어 MySQL 과 관련된 설정을 알맞게
고쳐야 한다.
Hive 를 처음 설치했다면 $HIVE_HOME/conf/hive-site.xml 파일은 디렉토리 안에
없을 것이며
같은 디렉토리에 있는 hive-default.xml.template 파일을 복사한 다음 수정하도록 한다.
cd
/service/hive-‐0.7.1/conf/hive-‐site.xml
4. cp
./hive-‐default.xml.template
./hive-‐site.xml
이제 아래의 내용을 ./hive-site.xml 에서 찾아서 MySQL 의 서버와 접속하는데 사용할
MySQL 의 계정등을 적절하게 고쳐 준다.
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://MYSQL_HOSTNAME/metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
5. </property>
위에서 MYSQL_HOSTNAME 은 MySQL 이 설치된 서버의 IP 주소 또는 hostname 을
적으면 되는데
이 튜토리얼에서는 MySQL 을 Hive 가 설치된 서버에 함께 설치하였으므로
127.0.0.1 이다.
만약 안전한 관리나 다른 목적으로 인해 MySQL 을 다른 서버에 설치했다면 그 서버의
IP 주소를 적으면 된다.
이로써 Hive 를 설치하고 설정하는 과정을 완료하였다.
Hive 에 대한 자세한 사용법은 Hive 의 공식사이트의 문서들을 참조하기 바란다.