spark如何防止內存溢出

  1. MEMORY_AND_DISK
    使用rdd.persist(StorageLevel.MEMORY_AND_DISK)代替rdd.cache()
  2. 降低cache操作的內存佔比
  3. 增加每個executor的內存量
  4. 使用kero序列化機制減少內存佔用
  5. 避免使用partitions算子
  6. 數據傾斜,可能會導致每個task數據量太大,內存溢出
  7. 算子導致的內存溢出
    例如下列map算子,每條記錄都產生了1000個對象,這肯定很容易產生內存溢出的問題
rdd.map(x=>for(i <- 1 to 10000) yield i.toString
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章