Hive 0.13.1 설치 (소스 빌드)

아파치 하이브 0.13.1을 소스 빌드 방식으로 설치합니다.

[ 설치환경 ]

* OS : 우분투 14.04 LTS Server 64bit
* Hadoop : HADOOP 2.4.1 (설치위치 /usr/local/hadoop, 계정 hduser:hadoop)
* Java : JRE 1.7.x

1. 하이브 소스 다운로드

하이브 다운로드 페이지 http://mirror.apache-kr.org/hive/
하이브 0.13.1 소스 직접링크 http://mirror.apache-kr.org/hive/hive-0.13.1/apache-hive-0.13.1-src.tar.gz

$ pwd
/home/$USER/builds

$ wget -c http://mirror.apache-kr.org/hive/hive-0.13.1/apache-hive-0.13.1-src.tar.gz

$ tar xvfz apache-hive-0.13.1-src.tar.gz

2. 하이브 컴파일

$USER/builds 위치에 tar 압축을 풀고 아래 명령어를 실행
컴파일 된 bin 패키지는 아래 위치에 생성된다.
=> ${빌드위치}/packaging/target/apache-hive-0.13.1-bin/apache-hive-0.13.1-bin

$ pwd
/home/$USER/builds/apache-hive-0.13.1-src

$ mvn clean install -Phadoop-2,dist

$ ls -l packaging/target/apache-hive-0.13.1-bin/apache-hive-0.13.1-bin
    

3. 하이브 바이너리 설치

/usr/local 아래에 옮긴 후 hive 링크 생성, 계정 hduser로 소유권 변경
그외 .bashrc 등에 환경 설정

* 문제 해결
설치계정인 hduser 외의 계정으로 hive 사용시 아래와 같은 권한 오류 발생시
“Error creating temp dir in hadoop.tmp.dir /usr/local/hadoop/tmp due to 허가 거부”
하둡의 tmp 디렉토리 권한을 풀어주므로써 해결할 수 있다.

$ pwd
/home/$USER/builds/apache-hive-0.13.1-src

$ sudo mv packaging/target/apache-hive-0.13.1-bin/apache-hive-0.13.1-bin /usr/local/hive-0.13.1

$ cd /usr/local

$ sudo chown -R hduser:hadoop /usr/local/hive-0.13.1/

$ sudo ln -s hive-0.13.1 hive

# hduser 계정으로 변경
$ su - hduser

# .bashrc 환경변수 등록
$ vi ~/.bashrc
...
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
...

$ source ~/.bashrc

$ cd /usr/local/hive

# 하이브 config 환경설정 쉘스크립트에 하둡 위치 추가
$ vi bin/hive-config.sh
...
export HADOOP_HOME=/usr/local/hadoop
...

# 다른 계정으로 하이브 실행시 하둡의 tmp 디렉토리에 권한 거부 문제 해결
# tmp 디렉토리는 $HADOOP_HOME/etc/hadoop/core-site.xml에 설정되어 있음
$ sudo chmod a+rwx $HADOOP_HOME/tmp

# 확인
$ ls -l $HADOOP_HOME/
...
drwxrwxrwx 4 hduser hadoop 4096 10월 29 16:04 tmp
    

4. 하이브 실행 준비

Hadoop DFS에 hive용 디렉토리를 생성하고, 권한 변경
$HIVE_HOME/conf 아래의 설정파일을 기본으로 생성

$ su - hduser

$ cd /usr/local/hive

$ hadoop fs -mkdir /tmp
$ hadoop fs -chmod g+w /tmp

$ hadoop fs -mkdir /user/hive
$ hadoop fs -mkdir /user/hive/warehouse
$ hadoop fs -chmod g+w /usr/hive/warehouse

# conf 설정파일을 기본값 그대로 생성
$ cd conf

$ cp hive-env.sh.template hive-env.sh
$ cp hive-default.xml.template hive-default.xml
$ cp hive-exec-log4j.properties.template hive-exec-log4j.properties
$ cp hive-log4j.properties.template hive-log4j.properties
    

5. 하이브 실행 및 테스트

하이브는 하둡 기반으로 실행되므로 하둡서비스가 돌고 있어야 한다.
/user/hive/warehouse 아래에 데이터베이스가 디렉토리로 생성되며
권한관리를 통해 관리할 수 있다.

# 하둡 서비스 동작 확인
$ hadoop fs -ls /user/hive/
Found 1 items
drwxrwxr-x   - hduser supergroup          0 2014-10-29 15:59 /user/hive/warehouse

# 샘플 데이터베이스 및 테이블 생성
$ hive

Logging initialized using configuration in jar:file:/usr/local/hive-0.13.1/lib/hive-common-0.13.1.jar!/hive-log4j.properties
hive> show databases;
OK
default
Time taken: 0.341 seconds, Fetched: 1 row(s)
hive> create database sample;
OK
Time taken: 0.137 seconds
hive> use sample;
OK
Time taken: 0.018 seconds
hive> create table product(
    > product_id int, product_name string, price float 
    > ) row format delimited fields terminated by ',';
OK
Time taken: 0.224 seconds
hive> show tables;
OK
product
Time taken: 0.03 seconds, Fetched: 1 row(s)
hive> desc product;
OK
product_id          	int                 	                    
product_name        	string              	                    
price               	float               	                    
Time taken: 0.609 seconds, Fetched: 3 row(s)
hive> show databases;
OK
default
sample
Time taken: 0.016 seconds, Fetched: 2 row(s)
    

9. 참고자료

하이브 컴파일 방법에 대한 설명: 아파치 문서
https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-BuildingHivefromSource

초간단으로 정리된 하이브 바이너리 설치 방법
http://ittektalk.blogspot.kr/2014/05/ubuntu-server-1404-install-hive-0130.html

하이브 설정 방법이 잘 설명된 문서
http://doctuts.readthedocs.org/en/latest/hive.html

하둡 디렉토리 권한 설정을 설명한 문서
http://dmitrypukhov.pro/install-hive-on-ubuntu/

하이브 권한 관리에 대한 슬라이드
http://www.slideshare.net/julingks/hive-authorization-michael130702

다른 계정으로 하이브 사용시 나오는 권한 거부 문제 해결
http://stackoverflow.com/questions/12850514/error-creating-temp-dir-in-hadoop-tmp-dir-tmp-hadoop-sha-due-to-permission-deni

CDH를 이용한 : 여러 사용자를 위한 Metastore 설치 안내
http://odysseymoon.tistory.com/34

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: