메뉴 건너뛰기

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 



번호 제목 글쓴이 날짜 조회 수
139 Tracking URL = N/A 가발생하는 경우 - 환경설정값을 잘못설정하는 경우에 발생함 총관리자 2015.06.17 423
138 java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error: Unable to deserialize reduce input key from...오류해결방법 총관리자 2015.06.16 1673
137 hortonworks에서 제공하는 메모리 설정값 계산기 사용법 file 총관리자 2015.06.14 719
136 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.http.HttpConfig.getSchemePrefix()Ljava/lang/String; 해결->실패 총관리자 2015.06.14 402
135 hadoop 2.6.0에 sqoop2 (1.99.5) server및 client설치 == fail 총관리자 2015.06.11 1770
134 "File /user/hadoop/share/lib does not exist" 오류 해결방법 총관리자 2015.06.07 655
133 Error: E0501 : E0501: Could not perform authorization operation, User: hadoop is not allowed to impersonate hadoop 해결하는 방법 총관리자 2015.06.07 385
132 Error: Could not find or load main class nodemnager 가 발생할때 해결하는 방법 총관리자 2015.06.05 426
131 센서테스트 file 총관리자 2015.05.25 167
130 apk 파일 위치 file 총관리자 2015.05.25 2227
129 HAX is not working and emulator runs in emulation mode 메세지가 나오는 경우 file 총관리자 2015.05.25 159
128 hbase shell 필드 검색 방법 총관리자 2015.05.24 1900
127 flume 1.5.2 설치및 테스트(source : file, sink : hdfs) in HA 총관리자 2015.05.21 1415
126 java.lang.ClassNotFoundException: org.apache.hadoop.util.ShutdownHookManager 오류조치사항 총관리자 2015.05.20 572
125 Permission denied: user=hadoop, access=EXECUTE, inode="/tmp":root:supergroup:drwxrwx--- 오류해결방법 총관리자 2015.05.17 412
124 Nodes of the cluster (unhealthy)중 1/1 log-dirs are bad: 오류 해결방법 총관리자 2015.05.17 599
123 secureCRT에서 backspace키가 작동하지 않는 경우 해결방법 총관리자 2015.05.11 713
122 hbase가 기동시키는 zookeeper에서 받아드리는 ip가 IPv6로 사용되는 경우가 있는데 이를 IPv4로 강제적용하는 방법 총관리자 2015.05.08 267
121 hbase CustomFilter만들기 (0.98.X이상) 총관리자 2015.05.08 162
120 znode /hbase recursive하게 지우기 총관리자 2015.05.06 673

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.

위로