메뉴 건너뛰기

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 



번호 제목 글쓴이 날짜 조회 수
140 python 2.6.6에서 print 'A=' 형태의 사용이 python 3.5.1에서 오류(SyntaxError: Missing parentheses in call to 'print') 발생함.. 총관리자 2016.05.27 62
139 [TLS/SSL]Kudu Master 설정하기 총관리자 2022.05.13 61
138 [TLS]TLS용 사설 인증서 변경 혹은 신규 지정시 No trusted certificate found 오류 발생시 확인및 조치사항 총관리자 2022.03.15 60
137 lagom-windows용 build.sbt파일 내용 총관리자 2017.10.12 60
136 Mysql DB 생성 및 권한. 특정아이피, 대역에 대한 접근 허용 총관리자 2017.05.04 60
135 Master rejected startup because clock is out of sync 오류 해결방법 총관리자 2016.05.03 60
134 queryTranslator실행시 NullPointerException가 발생전에 java.lang.ArrayIndexOutOfBoundsException발생시 조치사항 총관리자 2016.06.16 58
133 Lagom프레임웍에서 제공하는 HelloWorld 테스트를 수행시 [unknown-version]오류가 발생하면서 빌드가 되지 않는 경우 조치사항 총관리자 2017.12.22 56
132 9대가 hbase cluster로 구성된 서버에서 테스트 data를 halyard에 적재하고 테스트 하는 방법및 절차 총관리자 2017.07.21 56
131 [hive] hive.tbls테이블의 owner컬럼값은 hadoop.security.auth_to_local에 의해서 filtering된다. 총관리자 2022.04.14 55
130 HDFS에서 quota 설정 방법및 확인 방법 총관리자 2022.03.30 55
129 [Impala jdbc]CDP7.1.7환경에서 java프로그램을 이용하여 kerberized impala cluster에 접근하여 SQL을 수행하는 방법 gooper 2023.08.22 54
128 fuseki가 제공하는 web ui를 통해서 dataset를 remove->create할 경우 동일한 동일한 이름으로 지정했을때 fuseki-server.jar가 뜨지 않는 현상 총관리자 2017.02.03 54
127 Windows에서 sbt개발환경 구축 방법(링크) 총관리자 2016.06.02 54
126 서버 5대에 solr 5.5.0 설치하고 index data를 HDFS에 저장/search하도록 설치/설정하는 방법 총관리자 2016.04.08 54
125 DataSetCreator.py 실행시 파일을 찾을 수 없는 오류 총관리자 2016.05.27 53
124 [HDFS]Encryption Zone에 생성된 테이블 조회시 Failed to open HDFS file hdfs://nameservice1/tmp/zone1/sec_test_file.txt Error(255): Unknown error 255 Root cause: AuthorizationException: User:impala not allowd to do 'DECRYPT_EEK' on 'testkey' gooper 2023.06.29 52
123 jar파일의 dependency찾는 프로그램 총관리자 2016.08.11 52
122 RDF4J의 rdf4j-server.war가 제공하는 RESTFul API를 이용하여 repository에 CRUD테스트 총관리자 2017.08.30 51
121 hadoop에서 yarn jar ..를 이용하여 appliction을 실행하여 정상적으로 수행되었으나 yarn UI의 어플리케이션 목록에 나타나지 않는 문제 총관리자 2017.05.02 51

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.

위로