리눅스도 처음해본다. 하둡설치 2.7.3 하이브 2.1.0 Mysql 연동까지
갑자기 하둡을 하게 되었다. 그런데 하둡은 리눅스 설치해야 한다는 것!! 멘붕이다.
근 2주간 고생고생하면서 설치에 성공하게 되었고 다른 곳에서도 설치할 일이 있을 것 같아서
매뉴얼을 작성해본다.
아무것도 모르고 CentOS 6.6 > HADOOP 2.7.3 > HIVE 2.1.0 > MYSQL 연동까지 시작해보자.
5. HIVE , MYSQL 연동
MYSQL JDBC 다운로드
wget http://repo.maven.apache.org/maven2/mysql/mysql-connector-java/5.1.9/mysql-connector-java-5.1.9.jar
다운로드 받은 파일 hive/lib 폴더로 복사
cp hive-env.sh.template hive-env.sh 로 hive-env.sh 파일 만들자.
hive-env.sh
vim hive-env.sh
HADOOP_HOME=/home/hadoop/hadoop
cp hive-default.xml.template hive-site.xml 로 파일 생성
hive-site.xml
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://NameNode:3306/hive?createDatabaseIfnotExists=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://NameNode:9083</value>
<description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
hive-log4j.properties ( hive-log4j2.properties.template 로 만들것 )
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
. 이제 연결하려고 하면 mysql 의 유저 권한이 없다고 나온다.
mysql> grant all privileges on *.* to 사용자명@호스트
-> identified by '비밀번호' with grant option;
권한주고 hive DB에 스키마를 생성하자.
/home/hadoop/hadoop/hive/scripts/metastore/upgrade/mysql 폴더로 이동
mysql -u hive -p hive < ./hive-schema-2.0.0.mysql.sql
이제 메타스토어를 백엔드에서 실행하자.
hive --service metastore &
이제 reboot 해서 Hadoop 부터 실행해보자.
start-all.sh
정상적으로 실행되었다.
이제 HIVE 의 ODBC 연결을 위한 hiveserver2 를 백그라운드에서 실행하자.
hive --service hiveserver2 &
정상 적으로 실행됬다.
HIVE의 METASTORE 를 실행하자.
hive --service metastore &
좋아 .. 순조롭다. 이제는 hive를 실행해보자.
hive
HIVE 가 정상 시작 되었다. 이제는 hive에서 테이블을 만들고 mysql에서 테이블을
조회해보면 연동이 정상적으로 되었다는 것이 검증된다.