記錄一下心血歷程,學hive的第一天就給我來了個下馬威
使用的版本如下
mysql:5.6.24
hive:1.2.1
本想創建表格
hive (test)> create table stu(id int, name string);
不料這都能報錯,還卡了我一天。。。
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)
遇到問題那肯定是Ctrl+C Ctrl+V上搜索引擎找之前掉到坑裏的人,查看各種前輩的文章,內容千篇一律,都是將hive表的字符集改爲latin1
alter database hive character set latin1;
然而我的MySQL裏面沒有hive數據庫,不禁發出疑問,這有什麼聯繫嗎?
後來又看到加強版,先刪除hive數據庫再創建hive數據庫最後修改字符集,看起來好像還挺靠譜的
drop database hive;
create database hive;
alter database hive character set latin1;
既然沒有hive數據庫那就直接創建+該字符集吧,然而並沒有什麼卵用,自己創建個hive自己騙自己。。。
a night later
爲啥都改hive的字符集呢?難道啓動hive後mysql裏面就有hive數據庫了,我前面應該也沒出錯啊,而且之前能創建表(使用hive自帶數據庫),後來關聯了mysql就不行了,更是說明了我原數據關聯上mysql了,等等,這怎麼有個metastore???難道???
mysql> alter database metastore character set latin1;
問題解決了。
解決了。
決了。
了。
。