Hadoop Hive -MetaException 에러 처리방법
Hadoop-Hive 연동 에러
hive에서 분명 show tables, show databases 등이 잘 동작하는데, Create table이 안되는 경우가 있다.
hive> show tables;
OK
Time taken: 0.141 seconds
분명히 디비도 잘 만들었고, 디비 권한도 hive 계정에 다 주었고, hive-site.xml도 잘 설정했다.
mysql> create database hive_db;
Query OK, 1 row affected (0.01 sec)
mysql> use hive_db;
Database changed
mysql> create user 'hive_account'@'%' identified by 'hive_password';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on hive_db.* to 'hive_account'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#hive-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_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_account</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive_password</value>
<description>password to use against metastore database</description>
</property>
</configuration>
아무리 구글링을 해도 답이 안나올 즈음.. 중국인들의 사이트에서 답을 얻어냈다. ㅋ
https://github.com/leotse90/SparkNotes/blob/master/Hadoop%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98.md
alter database hive_db character set latin1;
Database encoding의 default 값을 UTF-8로 설정해놨었는데, latin1로 바꾸니까 잘 된다.
Time taken: 1.541 seconds
Database의 character set 설정이 이렇게 중요했다는것..
이걸로 한 5시간 날린 것 같다 ㅠㅠ.