本次排錯參考:
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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。