메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


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

구퍼 2013.03.07 17:22 조회 수 : 2722

 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 



번호 제목 글쓴이 날짜 조회 수
81 uEnv.txt위치및 내용 총관리자 2014.07.09 643
80 banana pi(lubuntu)에서 한글 설정및 한글깨짐 문제 해결 총관리자 2014.07.06 3205
79 access=WRITE, inode="staging":ubuntu:supergroup:rwxr-xr-x 오류 총관리자 2014.07.05 1719
78 org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE, inode="":root:supergroup:rwxr-xr-x 오류 처리방법 총관리자 2014.07.05 2835
77 banana pi에(lubuntu)에 hadoop설치하고 테스트하기 - 성공 file 총관리자 2014.07.05 2760
76 2개 data를 join하고 마지막으로 code정보를 join하여 결과를 얻는 mr 프로그램 총관리자 2014.06.30 408
75 jsoup 사용 예제 총관리자 2014.06.06 1506
74 Cannot create /var/run/oozie/oozie.pid: Directory nonexistent오류 총관리자 2014.06.03 479
73 oozie job 구동시 JA009: User: hadoop is not allowed to impersonate hadoop 오류나는 경우 총관리자 2014.06.02 807
72 원보드pc인 bananapi를 이용하여 hadoop 클러스터 구성하기(준비물) file 총관리자 2014.05.29 3838
71 의사분산모드에 hadoop설치및 ecosystem 환경 정리 총관리자 2014.05.29 3170
70 hadoop및 ecosystem에서 사용되는 명령문 정리 총관리자 2014.05.28 3455
69 hive job실행시 meta정보를 원격의 mysql에 저장하는 경우 설정방법 총관리자 2014.05.28 1088
68 oozie의 meta정보를 mysql에서 관리하기 총관리자 2014.05.26 1466
67 hive query에서 mapreduce돌리지 않고 select하는 방법 총관리자 2014.05.23 811
66 hiverserver2기동시 connection refused가 발생하는 경우 조치방법 총관리자 2014.05.22 1471
65 import 혹은 export할때 hive파일의 default 구분자는 --input-fields-terminated-by "x01"와 같이 지정해야함 총관리자 2014.05.20 4245
64 hive에서 insert overwrite directory.. 로 하면 default column구분자는 'SOH'혹은 't'가 됨 총관리자 2014.05.20 999
63 source의 type을 spooldir로 하는 경우 해당 경로에 파일이 들어오면 파일단위로 전송함 총관리자 2014.05.20 687
62 특정파일이 생성되어야 action이 실행되는 oozie job만들기(coordinator.xml) 총관리자 2014.05.20 984

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로