메뉴 건너뛰기

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 



번호 제목 글쓴이 날짜 조회 수
60 [Cloudera 6.3.4, Kudu]]Service Monitor에서 사용하는 metric중에 일부를 blacklist로 설정하여 모니터링 정보 수집 제외하는 방법 gooper 2022.07.08 31
59 Cloudera Manager의 Java Heap Size변경하는 방법 gooper 2022.06.27 31
58 federated query 예제 총관리자 2017.01.19 31
57 [KTS Cluster의 Key Trustee Server]self-signed 인증서 발급및 설정 방법 gooper 2023.06.27 29
56 [oozie]oozie ssh action으로 패스워드 없이 다른 서버에 ssh로그인 하여 shellscript호출하는 설정하는 방법 gooper 2022.11.10 29
55 [CDP7.1.7]Impala Query의 Memory Spilled 양은 ScratchFileUsedBytes값을 누적해서 구할 수 있다. gooper 2022.07.29 29
54 Could not authenticate, GSSException: No valid credentials provided (Mechanism level: Failed to find any kerberos tgt) 총관리자 2022.04.28 27
53 Oracle RAC 구성된 DB서버에 대한 컴포넌트별 설정 방법 총관리자 2022.02.12 27
52 [vi]블럭 및 문서내 복사등에 관련된 명령어 총관리자 2017.02.17 27
51 Error: IO_ERROR : java.io.IOException: Error while connecting Oozie server 총관리자 2022.05.02 26
50 kudu table와 impala(hive) table정보가 틀어져서 테이블을 읽지 못하는 경우(Error Loading Metadata) 조치방법 gooper 2023.11.10 25
49 클러스터내의 전체 workflow및 coordinator현황을 사용자별로 추출하는 방법 총관리자 2021.11.25 25
48 oracle 접속 방식에 따른 --connect 지정 방법 총관리자 2022.02.11 24
47 hadoop에서 yarn jar ..를 이용하여 appliction을 실행하여 정상적으로 수행되었으나 yarn UI의 어플리케이션 목록에 나타나지 않는 문제 총관리자 2017.05.02 24
46 magento2 샘플데이타 설치 총관리자 2017.01.31 24
45 [Ranger]RangerAdminRESTClient Error gertting pplicies; Received NULL response!!, secureMode=true, user=rangerkms/node01.gooper.com@ GOOPER.COM (auth:KERBEROS), serviceName=cm_kms gooper 2023.06.27 23
44 [Solr in Cloudera]Solr Data Directory변경 방법/절차 gooper 2023.04.21 23
43 vuestorefrontui.io를 이용한 front end project 생성하기 총관리자 2022.02.06 23
42 not leader of this config: current role FOLLOWER 오류 발생시 확인방법 총관리자 2022.01.17 23
41 kudu의 내부 table명 변경하는 방법 gooper 2022.11.10 22

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.

위로