메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


hive Hive+mysql 설치 및 환경구축하기

구퍼 2013.03.07 17:22 조회 수 : 4057

 e 다운로드 및 설치

우선 하이브를 사용하려면 하둡이 반드시 설치되어 있어야한다.

설치되어있지 않다면..

Hadoop(하둡) 설치 및 시작 따라하기

아파치 하이브 다운로드 사이트에 접속하여 다운로드 받는다.

http://www.apache.org/dyn/closer.cgi/hive/

hive-0.10.0 버전이 불완전하다는 말을 주변에서 듣고 (확실치는 않음)

hive-0.9.0 버전 다운로드 함.

리눅스 (우분투) 하둡 설치폴더로 이동 후 압축해제 한다.

# tar -xzvf hive-0.9.0-bin.tar.gz

압축 푼 것으로 설치는 완료되었으며,

설정을 해주어야 한다.

hive 환경설정

먼저 환경변수 등록을 해준다.

하둡 path 를 설정했던 .profile 로 이동

HIVE_HOME 경로 및 PATH 를 등록한다.

등록 저장 후 source .profile 로 적용

Hive에서 사용할 HDFS 에 디렉토리 구성하기

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

hive 실행하기

hive 실행하려면 하둡이 실행되어 있어야 한다.

$ $HADOOP_HOME/bin/start-all.sh

hadoop 이 정상적으로 실행되면 다음 명령어로 hive를 실행한다.

$ $HIVE_HOME/bin/hive

hive>

hive가 정상 작동 하는지 확인

hive> show tables;

OK 가 떨어지면 제대로 설치 된것이다.

mysql metastore 설정

mysql 을 metastore 로 설정하려면 당연히 mysql 이 설치되어 있어야한다.

mysql 서비스를 시작한다.

# service mysql start

루트 사용자의 암호를 설정한다.

mysql> grant all privileges on *.* to hiveid@localhost identified by 'hivepass' with grant option

(mysql> grant all privileges on *.* to hive@localhost identified by '패스워드' with grant option;)

위 명령어의 hive 는 사용자 아이디이며, 패스워드는 사용자 패스워드이다.

다음으로 metastore로 사용할 db를 생성한다.

기존 db를 사용하려면 안해도 무방하다.

mysql> create database metastore_db;

HIVE_HOME/conf 에 hive-site.xml 을 생성 및 작성한다.

<configuration>

<property>

<name>hive.metastore.local</name>

<value>true</value>

</property>


<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>


<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>hive</value>

<description>username to use against metastore database</description>

</property>


<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>패스워드</value>

<description>password to use against metastore database</description>

</property>

</configuration>

mysql connector 다운로드 http://www.mysql.com/downloads/connector/j/

다운로드한 mysql-connector-java-5.1.22.tar.gz 를 HIVE_HOME/lib/ 에 복사한다. (버전은 다를 수 있음)

mysql-connector-java-5.1.22.tar.gz 압축해제 하여 bin 폴더안에 있는 mysql-connector-java-5.1.22-bin.jar 파일만 넣으면 된다.

제대로 연동되었는지 다시한번 하이브 실행 확인한다.

위의 'hive 실행하기' 다시한번~

정상적으로 작동하면 mysql metastore 설정이 완료된것이다.




아래는 mysql없이 설정하는 방법임.

HADOOP HIVE(하이브) 설치2
 
1. 설치 시스템 
- ubuntu 11
- java 1.6
- hadoop 0.20.205.0
- hive 0.9.0


3. hive 다운로드 설치
- Apache download mirrors 에서 최신 버전 hive 다운로드 (Hive Realease 참고) 
- 다운로드 파일명: hive-0.9.0.tar.gz
- 설치 폴더에 복사하여 압축 해제 (/usr/local/hduser/)

 $ tar -xzvf hive-0.9.0.tar.gz 
- HIVE_HOME 설정 (링크 만들어서 연결)

$ ln -s ./hive-0.9.0 hive
$ export HIVE_HOME=/usr/local/hduser/hive

- PATH 설정

$ export PATH=$HIVE_HOME/bin:$PATH 

4. hive 내에서 사용될 HDFS 에 디렉토리 만들기

- hive.metastore.warehove.dir 설정(./conf/hive-default.xml) 가능.
- 디렉토리 생성 명령

$ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse 

5. hive 실행 전 linux 접속시 설정들.

매번 접속하여 export 할 수 있으나 아래와 같이
 .bashrc 파일에 설정하면 매번 실행할 필요가 없어 편리하다. 

- .bashrc 파일에 정보 설정

 $vi $HOME/.bashrc
--> 다음을 설정한다. 
#hive 실행을 위해 HADOOP_HOME, HADOOP_VERSION 설정한다. 
export HADOOP_HOME=/usr/local/hduser/hadoop
export HADOOP_VERSION=0.20.205.0
export PATH=$PATH:$HADOOP_HOME/bin

#hive 경로 설정
export HIVE_HOME=/usr/local/hduser/hive
export PATH=$PATH:$HIVE_HOME

* HADOOP_VERSION은 hive 내부에서 버전을 체크하는 부분이 있어서 필요하다. 

6. hive 실행에 hadoop library class_path 에 등록 시키기

이 부분도 .bashrc에 등록하면 상관없으나 차후 어떤 상황이 발생할지 
몰라 환경파일을 수정하였다. 

- $HIVE_HOME/bin/hive 파일 수정
#hive 라이브러리 CLASSPATH에 추가하는 부분. (기본 설정 부분.)
for f in ${HIVE_LIB}/*.jar; do
  CLASSPATH=${CLASSPATH}:$f;
done

#hadoop library classpath setting (추가할 부분)
for f in ${HADOOP_HOME}/lib/*.jar; do
  CLASSPATH=${CLASSPATH}:$f;
done

7. hadoop 실행에 hive library classpath 등록 시키기

hive 는 hadoop 시스템을 이용하기 때문에 hive를 이용한 명령 쿼리는 실제로는 hadoop의 map reduce 프로그램으로 실행된다. 따라서 hive에서 제공하는 library는 hadoop 실행할 때 classpath 에 등록되어야 한다. 
- $HADOOP_HOME/conf/hadoop-env.sh 파일 수정

# Extra Java CLASSPATH elements.  Optional. (기존 존재)
export HADOOP_CLASSPATH=/usr/local/hadoop/hadoop-examples-0.20.205.0.jar

#hive library classpath setting.(추가 사항)
for f in ${HIVE_HOME}/lib/*.jar; do
  HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
done

8. hive 실행 시키기

- 위 모든 사항이 제대로 설정이 되었다면 hive 실행에 문제 없을 것이다. 
- 우선 hadoop 을 실행시킨다. 

$ $HADOOP_HOME/bin/start-all.sh

- hive 실행 시킨다. 

$ $HIVE_HOME/bin/hive
hive>

9. hive console을 이용한 create table, show table 실행 시켜보기.
- create table 
hive> CREATE TABLE pokes (foo INT, bar STRING);
- show table 
hive> SHOW TABLES '.*s'; 

# hive 설치관련 참고: GettingStarted 



번호 제목 날짜 조회 수
70 hadoop및 ecosystem에서 사용되는 명령문 정리 2014.05.28 5127
69 hive job실행시 meta정보를 원격의 mysql에 저장하는 경우 설정방법 2014.05.28 3842
68 oozie의 meta정보를 mysql에서 관리하기 2014.05.26 2973
67 hive query에서 mapreduce돌리지 않고 select하는 방법 2014.05.23 2968
66 hiverserver2기동시 connection refused가 발생하는 경우 조치방법 2014.05.22 3326
65 import 혹은 export할때 hive파일의 default 구분자는 --input-fields-terminated-by "x01"와 같이 지정해야함 2014.05.20 5456
64 hive에서 insert overwrite directory.. 로 하면 default column구분자는 'SOH'혹은 't'가 됨 2014.05.20 2199
63 source의 type을 spooldir로 하는 경우 해당 경로에 파일이 들어오면 파일단위로 전송함 2014.05.20 3078
62 특정파일이 생성되어야 action이 실행되는 oozie job만들기(coordinator.xml) 2014.05.20 3521
61 dual table만들기 2014.05.16 2815
60 sqoop에서 oracle관련 작업할때 테이블명, 사용자명, DB명은 모두 대문자로 사용할것 2014.05.15 2672
59 sqoop export/import등을 할때 driver를 못찾는 오류가 발생하면... 2014.05.15 3159
58 oozie가 말하는 start시간은..서버에서 확인되는 시간이 아닙니다. 2014.05.14 3198
57 우분투 16.04 LTS에 apache2와 tomcat7 연동하여 설치하기 2014.05.09 3040
56 ping 안될때.. networking restart 날려주면 잘됨.. 2014.05.09 4132
55 insert hbase by hive ... error occured after 5 hours..HMaster가 뜨지 않는 장애에 대한 복구 방법 2014.04.29 8253
54 빅데이터 분석을 위한 샘플 빅데이터 파일 다운로드 사이트 2014.04.28 4197
53 index생성, 삭제, 활용 2014.04.25 2874
52 hbase shell에서 컬럼값 검색하기(SingleColumnValueFilter이용) 2014.04.25 3699
51 unique한 값 생성 2014.04.25 3080
위로