hive-staging文件產生的原因和解決方案


通過spark-sql、hive-sql、hue等提交select或者insert overwrite等sql到hive時,會產生該目錄,用於臨時存放執行結果,比如insert overwrite會將結果暫存到該目錄下,待任務結束,將結果復制到hive表中。
關於該目錄的生成位置策略可參考該文章:https://blog.csdn.net/zhoudetiankong/article/details/51800887,文章中提到了可修改該目錄的生成位置,復述如下:
默認配置:
<property>
    <name>hive.exec.stagingdir</name>
    <value>.hive-staging</value>
</property>  

修改后:
    <property>
         <name>hive.exec.stagingdir</name>
         <value>/tmp/hive/.hive-staging</value>
    </property>

測試對hive生效,sparksql不起作用,應該是sparksql的bug:  https://issues.apache.org/jira/browse/SPARK-1837


兩種情況下hive-staging文件不會自動刪除:1、任務執行過程中出現異常 2、長時間保持連接或者會話。
所以修改hive.exec.stagingdir到一個特定的目錄還是很有必要的,如果不輸出到一個特定目錄,而輸出到表目錄下面,很難檢測到這些垃圾文件,可參考:
https://www.aboutyun.com//forum.php/?mod=viewthread&tid=20657&extra=page%3D1&page=1&

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM