Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
1. tarball파일 다운로드
cd /usr/local
wget http://www.eu.apache.org/dist/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gz
2. 압축풀기
tar xvfz apache-hive-0.13.1-bin.tar.gz
3. 링크생성
ln -s apache-hive-0.13.1-bin/ hive
4. 변수설정(/etc/profile)
export HIVE_HOME=/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin
5. HDFS에 hive용 folder생성및 mod수정
hadoop fs -mkdir /user/hive
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod g+w /user/hive/warehouse
6. conf파일 설정(conf폴더밑에 템플릿만 있으므로 아래와 같이 만들어줄것)
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-exec-log4j.properties.template hive-exec-log4j.properties
cp hive-log4j.properties.template hive-log4j.properties
7. hadoop_env.sh에서 HADOOP_CLASSPATH 환경변수에 hive의 lib파일($HIVE_HOME/lib/* )을 등록함
vi $HADOOP_HOME/conf/hadoop_env.sh
export HADOOP_CLASSPATH=/usr/local/hadoop/share/hadoop/mapreduce:/usr/local/hadoop/share/hadoop/mapreduce/lib:$HIVE_HOME/lib/*
* stop-yarn.sh 후 start-yarn.sh해서 반영시켜 줘야함
8. jdbc driver다운로드및 hive의 lib에 upload
https://jdbc.postgresql.org/download.html
(예. postgresql-9.3-1103.jdbc4.jar)
9. hive-site.xml수정
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:postgresql://db.com/dbname</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.postgresql.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>db게정</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>패스워드</value>
</property>
10. hive-env.sh수정
: 아래를 추가하여 hive가 hadoop의 jar파일을 사용할수 있도록 해준다.
#hadoop library classpath setting
for f in ${HADOOP_HOME}/lib/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
for f in ${HIVE_HOME}/lib/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
11. hadoop-env.sh수정
: 맨끝에 아래의 내용을 추가한다.
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hadoop/share/hadoop/mapreduce:/usr/local/hadoop/share/hadoop/mapreduce/lib:$HIVE_HOME/lib:$HIVE_HOME/conf
* hadoop-env.sh에 위에 내용을 추가하지 않으면 hive-site.xml이 CLASSPATH에 없다는 오류가 발생하며 meta정보를 rdb에 저장하려 설정했던 부분이 인식되지 않아서 derby db가 생기게 된다.
12. 확인
가. console에서 hive치고 정상적으로 실행되면 성공
나. hive cli를 종료후 derby.log와 metadata_db 폴더가 생겨있지 않으면 meta정보가 지정된 rdb에 정상적으로 연동되고 있다고 할수 있다.