项目场景:
kettle实现从MySQL往hive中导入数据
问题描述
运行中会报这样一个错误
Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.StatsTask
原因分析:
检查 Hive 的配置参数,特别是与统计信息收集相关的参数。如果统计任务出现问题,可以考虑调整相关参数,例如禁用某些统计信息的收集。
确认 Hive 的存储格式和表属性是否正确设置,不同的存储格式可能对插入和更新操作有不同的要求。
总结:大概率是自动收集时出现了某些错误导致任务被中断了,可以关闭自动收集尝试解决这个问题。
解决方案:
这里我有两种解决方案,希望可以解决你的问题
第一种方案:
如果你曾经在hive中配置过.hiverc 文件你可以在里面加入下面这个配置
set hive.stats.column.autogather=false;
当然如果安装hive时没有设置这个文件可以直接修改hive-site.xml文件里的这条配置,默认为true改为false
<property>
<name>hive.stats.autogather</name>
<value>false</value>
</property>
第二种方案:
当然自动收集是hive默认开启的,存在是有道理的,我们可以单独的设置,以下这个方法亲测可用,当然原理有待考究,我们重置这个hive表的统计信息(首先你要先有这个表)
analyze table your_table compute statistics;