본문 바로가기

Hadoop/Apache Hive

Apache Hive 설치 2 ( HIVE 설치 및 설정 )

1. Postgresql db에 메타 스토어로 사용할 디비 생성

- hive 설치 전 먼저 Postgresql db에 메타 스토어로 사용할 디비를 생성해야 합니다.

 

Postgres 계정으로 접속 후 메타스토어를 생성해 주세요.

su - Postgres

 

create database metastore owner postgres;

create schema authorization postgres;

 

metastore 생성

\list 명령어를 통해 데이터베이스 목록에 metastore가 생성되었는지 확인합니다.

 

 

2. HIVE 설치 및 적용

- HIVE 3.1.2 버전을 설치합니다.

 

root 계정으로 진행합니다.

wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

 

tar -xvf apache-hive-3.1.2-bin.tar.gz

압축해제 후

 

mv apache-hive-3.1.2-bin hive-3.1.2

 

이후 hive에 대한 환경변수를 설정합니다.

 

vi /etc/profile.d/hive.sh

 

hive.sh 파일 안에 아래 경로 추가합니다

 

export HIVE_HOME=/(하이브 설치경로)/hive-3.1.2

export PATH=$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH

 

이후 환경변수를 적용합니다.

 

source /etc/profile.d/hive.sh

 

 

3. Hive 설정 파일 수정

 

기존의 hive-env.sh.template 파일을 복사합니다. ( hive-3.1.2/conf 경로 )

 

cp hive-env.sh.template hive-env.sh

 

복사한 파일 수정

 

vi hive-env.sh

 

Hadoop 설정 파일이 있는 경로로 수정해줍니다.

 

48번째 줄

HADOOP_HOME=/home/hadoop/hadoop-3.1.0 ( hadoop이 설치되어 있는 경로 )

 

Hadoop 경로 설정

 

hadoop에서 postgresql의 데이터베이스인 metastore를 사용하기 위해 작성합니다.

 

vi hive-site.xml ( hive-3.1.2/conf 경로에 생성 )

 

<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:postgresql://localhost:5432/metastore</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>org.postgresql.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>(설정계정)</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>(비밀번호)</value>
        </property>
</configuration>

 

 

hive-site.xml

 

 

첫 번째 value jdbc:postgresql://[IP]:[port]/[DB NAME]

두 번째 value postgresql.jdbc.driver 사용

세 번째 value 사용할 metastore 데이터베이스의 사용자 이름

네 번째 value 사용할 metastore 데이터베이스의 사용자 비밀번호

 

 

4. PostgreSQL jdbc 파일 넣기

JDBC는 자바에서 DB 프로그래밍을 하기 위해 사용되는 API입니다.

하이브는 메타스토어라는 저장소를 만들어 하둡에서 처리된 메타데이터의 구조를 메타스토어에 저장합니다.

또한, 하이브는 오라클, MySQL, PostgreSQL 등 JDBC를 지원하는 모든 데이터베이스를 이용해 메 타스토어를 구축할 수 있습니다. 먼저, 아래 사이트에 방문하여 현재 JDK버전에 맞는 JDBC를 설치합니다.

저의 경우에는 JDK 8 버전이기 때문에 JDBC 4.2 version을 다운 받았습니다.

 

https://jdbc.postgresql.org/download.html

 

PostgreSQL JDBC Download

Download About Binary JAR file downloads of the JDBC driver are available here and the current version with Maven Repository. Because Java is platform neutral, it is a simple process of just downloading the appropriate JAR file and dropping it into your cl

jdbc.postgresql.org

 

다운받은 jar 파일은 설치한 hive-3.1.2/lib 폴더에 업로드합니다.

 

 

5. 메타스토어 초기화

 

su - hadoop

hadoop 계정으로 접속한 후 hive가 설치된 디렉토리로 이동한 후 수행해주세요.

 

cd (hive 폴더 경로)

./bin/schematool -initSchema -dbType postgres

 

실행 결과

 

위와 같은 결과가 나오면 초기화가 성공적으로 완료 된 것 입니다.

 

6. HiveQL 실행

 

실행에 앞서 기존 하둡이 실행되어 있어야 합니다. jps 명령어를 사용하여 각 서버마다 node가 실행되어 있는지 확인해주세요. ( 실행되어 있지 않다면 connection refused 에러 발생 )

 

확인이 되었다면 hive를 실행시켜보도록 하겠습니다

 

hadoop 계정으로 접속한 상태로

hive ( 한 단어만 입력 )

 

hive 실행

 

hive만 입력했을 때 위 사진과 같은 결과가 나오면 성공적으로 하이브에 접속 된 것입니다.