在配置hive环境时候,遇到如题问题,前提:已经将hive的元数据存在远程的mysql中,现在想要通过运行的hive端删除创建的相关表内容
使用如下命令:
hive>drop table student;
结果出现错误:
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.)
经过一阵度娘后,说是mysql数据库字符集出现问题。
修改mysql的字符集
alter database hive character set latin1;
但是经过修改后仍然并未解决问题,想起之前再看视频讲解sqoop里面说到mysql-connctor版本可能存在问题,我是用的5.6版本的mysql,拷贝到hive/lib下面的也是
mysql-connector-java-5.6-bin.jar,奇怪, 后来找到一个mysql-connector-java-5.1.34-bin.jar版本的, 将前者替换,嘿,还果然奏效了。
hive> drop table people;
Moved: 'hdfs://ns1/user/hive/warehouse/people' to trash at: hdfs://ns1/user/hadoop/.Trash/Current
OK
Time taken: 2.606 seconds
恩,具体原因有待探究。