參考:
使用spark sql apis 處理資料容易產生生成大量小檔案,小檔案問題也是在分布式計算中常見的問題。一般有三種方法來處理這類問題:
spark.sql.shuffle.partitions 引數通過在處理joins 或 aggregations 等shuffle操作來控制輸出的分割槽數。
可以在spark-submit 提交任務時通過 --conf 來指定coalesce(num) 通過對資料集再分割槽控制輸出分割槽數
spark sql adaptive execution 是spark 2.3.0 版本後新增的
spark sql自適應框架可以通過設定spark shuffle partition的上限和下限對不同作業不同階段的 reduce 個數進行動態調整;同時也可以通過引數對 joins 和 資料傾斜問題進行優化spark sql adaptive execution引數:
控制併發度
joins 優化策略:
資料傾斜:
SparkSQL將小檔案合併
1 設定配置 spark.sql set hive.exec.dynamic.partition true spark.sql set hive.exec.dynamic.partition.mode nonstrict spark.sql set spark.sql.shuffle.partiti...
sparksql壓縮小檔案
set spark.sql.shuffle.partitions 2 set spark.sql.adaptive.enabled true set spark.sql.adaptive.shuffle.targetpostshuffleinputsize 268435456 insert over...
小檔案問題
5.2 小檔案問題 小檔案是指檔案size小於hdfs上block大小的檔案。這樣的檔案會給hadoop的擴充套件性和效能帶來嚴重問題。首先,在hdfs中,任何block,檔案或者目錄在記憶體中均以物件的形式儲存,每個物件約佔150byte,如果有1000 0000個小檔案,每個檔案占用乙個bloc...