本次排错参考:
https://leongfeng.github.io/2016/09/23/hive-commands/
https://blog.csdn.net/yisun123456/article/details/84756064
最近通过使用指定location的方式建表在数据迁移的工作上省去了不少时间,但是在实际查看时经常发现一个问题:
分区表经常会显示没有数据。
本来以为只是新的hive所在服务器没有存储原分区表信息,可以msck repair修复即可。
msck repair table partiiton_table_name;
然而某一个分区表在运行时突然报错了。
1 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
?????
百度了一下就究竟是什么情况,但发现出错的原因却千奇百怪。
在搜寻一番之后找到了方法:
1 set hive.msck.path.validation=ignore;
执行这一句commond后在执行msck repair,分区表正常的修复并获取到数据。
然而这个问题的起因却比较值得研究。
根据参考的资料:Hive从1.3版本开始就会对分区相关的信息进行检测,如果使用了hive不识别的字符,就会报错。
有点意思。
作者:灰色的杰
链接:https://www.jianshu.com/p/e7d7b643f076
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。