Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hive.DELETEME16431

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hive.DELETEME1643159643943' doesn't exist

解决问题的办法有两个:

1. 直接在mysql中 drop 异常提示中的table

mysql>drop table DELETEME1643159643943;

2. 保守的做法,根据DELETEME*表的结构,在Hive中创建不存在的表

CREATE TABLE `DELETEME1643159643943` (  `UNUSED` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

通过实践,第一个方法就能够解决问题,如果不行可以尝试第二个方法。

总结:

hive、hadoop的上层异常原因可能很多情况导致,一定要找到真正的问题原因,不能急于尝试网上异常的解决办法。hive的元数据依赖关系型数据库,一定做好数据库的备份

mysql> use hive;

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hive.DELETEME16431

 

能够看到“DELETEME1643159643943”这个表,问题明确了,由于计算的压力过大,服务器停止响应,mysql也停止了响应,mysql进程被异常终止,在运行中的mysql表数据异常,hive的元数据表异常。

 

上一篇:Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure问题解决


下一篇:Caused by: java.net.SocketException: 权限不够