하둡 2.0 튜토리얼 - (8) 하이브 MySQL 메타스토어
MySQL 메타스토어
MySQL 설치
MySQL설치법은 운영체제마다 다르고, 다른곳에도 자료가 많으니 따로 정리하지 않겠습니다.
저는 호스트 기기에 MySQL을 따로 설치하였습니다.
MySQL config 수정
아래 방법은 호스트 기기 리눅스 기준입니다.
/etc/mysql/mysql.conf.d/mysqld.cnf 파일을 열어 아래 부분을 수정해줍니다.
이는 localhost를 사용하지 않고 외부 접속을 허용하는 것입니다.
(위의 부분 앞에 #를 사용해 주석처리 해준것입니다.)
#bind-address = 127.0.0.1
혹시 방화벽에 의해 포트가 막힐수도 있으니, 해당 문제는 포트를 열어 해결해 주시기 바랍니다.
위를 수정하셨으면 mysql을 재시작합니다.
> /etc/init.d/mysql restart
MySQL 사용자 생성
먼저 root계정으로 로그인 합니다. 루트계정은 설치시 설정하실 수 있습니다.
> mysql -uroot -p
비밀번호를 입력한 뒤 mysql> 콘솔이 나오면, 다음 커맨드를 입력합니다.
이 때 '1234'는 본인이 사용할 비밀번호를 설정합니다.
mysql> create user 'doop'@'doop01' identified by '1234';
그리고 해당 계정에 루트 권한을 부여합니다.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'doop'@'doop01' IDENTIFIED BY '1234';
mysql> flush privileges;
하이브 설정파일
하이브의 conf디렉토리에 있는 설정파일 hive-site.xml파일을 먼저 hive-site.xml.derby로 바꿔줍니다.
(혹시 나중에 사용할 수 있으니 별도로 저장하는 것입니다. 사용할 일이 없으신 분들은 지우셔도 무관합니다.)
> mv hive-site.xml hive-site.xml.derby
그리고 새로운 파일 hive-site.xml을 만들어줍니다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://10.40.1.243:3306/hive?createDatabaseIfNotExist=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>doop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>eodud7</value>
</property>
</configuration>
마지막으로 홈디렉토리 (혹은 아까 hive를 실행시킨 디렉토리)의 metastore_db파일의 경로를 metastore_db.derby로 바꿔주었습니다. (혹시 모를 에러를 막기 위해)
> mv ~/metastore_db ~/metastore_db.derby
이제 hive가 사용할 mysql 드리아버를 설치해줍니다.
호스트 기기에서 먼저 다음 링크로 다운을 받고 doop01기기로 전송해줍니다.
http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-commercial-5.1.7-bin.jar.zip
> wget http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-commercial-5.1.7-bin.jar.zip
그리고 zip을 풀고 hive의 lib디렉토리로 jar파일을 옮겨줍니다.
> unzip mysql-connector-java-commercial-5.1.7-bin.jar.zip
> mv mysql-connector-java-commercial-5.1.7-bin.jar apache-hive-2.1.1-bin/lib/
이제 위의 derby예제와 동일하게 초기화를 시키고 hive를 실행합니다.
> hive-schema -initSchema -dbType derby
> hive
실행이 끝나고 mysql서버에서 데이터베이스를 확인하면 hive 데이터베이스가 있는것을 확인할 수 있습니다.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hive |
| mysql |
| performance_schema |
| sys |
+--------------------+
이상으로 hive의 mysql 메타스토어 설정을 마쳤습니다.
참고자료
이 포스팅은 "시작하세요! 하둡 프로그래밍" 책의 예제를 무작정 따라해본 포스팅입니다.