Hive 新建分区异常处理:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
今天在测试 hive 相关语句时,发生了一个非常奇妙的错误,就是在我创建分区时,突然出现了一个异常:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
这让我有些猝不及防,毕竟以前没遇到过,于是我便在网上寻求解决方法,同是天涯沦落人。
**方法一:**降低Mysql-connect jar包的版本,将它降低到5.1.27,而我正好用的是5.1.38;虽然搞不懂他说的原理,毕竟他成功了,试试,好不容易找到了相应的 jar 包,满怀地启动服务程序。。。。。。继续报错,习惯了,PASS。
**方法二:**说是将hive-site.xml中的hive.metastore.schema.verification属性设置为true,默认情况下为false。尝试了一下,依旧不行,PASS。
**方法三:**便是更改MySQL中hive的 character_set_database 的编码格式改为 latin1;我记得之前有个异常我该过,查看了一下,果然没问题。本以为这个方法也不行,但是之后多看了帖子,尝试了多次,最终发现这个方法是可以解决问题,但是操作过程并没有网上说的那么简单,而且需要有一定的操作步骤。
以下是我总结的正确的操作步骤:
-
关闭 Hive 服务进程
如果没有关闭的话,之后操作的效果基本无法实现,从而无法解决异常问题。
exit; -> 退出 hive 操作界面
Ctrl+C(两个键一起按下,无法退出则多按几次)-> 退出 hive 进程
(以上操作应该再不同 Xshell 界面) -
进入 MySQL 数据库,并删除 hive 数据库
mysql -u root -p //输入数据库密码 drop database hive;
操作完成后,界面保持 MySQL 数据库,另外新建链接窗口执行下一步操作
-
再次初始化 Hive 的数据库
schematool -dbType mysql -initSchema
初始化之后,MySQL 中会自动载入新的 hive 数据库。
-
返回 MySQL 界面,进入 Hive 数据库,更改编码格式
use hive; alter database hive character set latin1; #最后查看一下 character_set_database 是否为 latin1;之前也可以先查一下,看看是否编码是否错误。 show variables like '%char%'; #之后就没有 MySQL 数据库的操作了,可以退出; exit;
-
再次启动 Hive 进程
hive --service metastore #保持窗口,保持进程运行
-
另起窗口,进入 Hive
这个时候,我发现之前新建的数据库和表会保存在 HDFS 中,但是新建的 hive 中并没这些数据,所有数据都要新建;
不过我发现一个奇妙的事,如果新建的数据库和数据表和之前的建的数据库和表重名的话,新数据会覆盖掉旧的数据,如果有人知道的话,这是为啥呢,大家可以在评论区讨论讨论。
谢谢大家的观看,希望所有人都能迅速解决问题。
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(me
- 关于hive创建表出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.问题
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.Runtim
- Hive 报错 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaExce
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(me
- Hive连接Mysql---FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
- Hive连接Mysql---FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
- hive创建表失败:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/bson/convers
- Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
- FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Fo
- FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- 解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
- 程序中执行hive sql出错[FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask]
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
- Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hbase/
- Hive创建表格报Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException的错误