记录一下心血历程,学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;
问题解决了。
解决了。
决了。
了。
。