本次排错参考:
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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。