日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Spark任务执行期间写临时文件报错导致失败

發(fā)布時(shí)間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark任务执行期间写临时文件报错导致失败 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

spark任務(wù)在執(zhí)行期間,有時(shí)候會(huì)遇到臨時(shí)目錄創(chuàng)建失敗,導(dǎo)致任務(wù)執(zhí)行錯(cuò)誤。

java.io.IOException: Failed to create local dir in ……

spark執(zhí)行過程的文件夾

  • spark創(chuàng)建臨時(shí)文件機(jī)制
    spark作為并行計(jì)算框架,同一個(gè)作業(yè)會(huì)被劃分為多個(gè)任務(wù)在多個(gè)節(jié)點(diǎn)執(zhí)行,reduce的輸入可能存在于多個(gè)節(jié)點(diǎn),因此需要shuffle將所有reduce的輸入?yún)R總起來;而shuffle時(shí)需要通過diskBlockManage將map結(jié)果寫入本地,優(yōu)先寫入memory store,在memore store空間不足時(shí)會(huì)創(chuàng)建臨時(shí)文件。
  • 臨時(shí)文件夾配置
    memory store的大小取決于spark.excutor.memory參數(shù),默認(rèn)為spark.excutor.memory*0.6;可通過spark.env中添加配置SPARK_LOCAL_DIRS或程序中設(shè)定spark.local.dir,可配置多個(gè)路徑,逗號(hào)分隔增強(qiáng)io效率。
  • SPARK_LOCAL_DIRS:Directory to use for "scratch" space in Spark, including map output files and RDDs that get stored on disk. This should be on a fast, local disk in your system. It can also be a comma-separated list of multiple directories on different disks.

    原因分析

    常見原因包括

  • 臨時(shí)目錄文件過多導(dǎo)致,當(dāng)一個(gè)spark任務(wù)執(zhí)行失敗時(shí),之前創(chuàng)建的臨時(shí)文件不會(huì)被刪除,就會(huì)殘留下來,spark任務(wù)失敗次數(shù)越多,就越可能導(dǎo)致臨時(shí)目錄故障。
  • 磁盤空間、inode資源、權(quán)限(比如巡檢項(xiàng)修改)等
  • 主要排查手段

    進(jìn)入臨時(shí)目錄,查看下臨時(shí)目錄當(dāng)前狀況,嘗試手動(dòng)創(chuàng)建是否ok。
  • 磁盤空間問題。
    排查:磁盤空間不足,或者磁盤掉載;通過df -h、du -sh或者fdisk查詢磁盤空間。
    解決:刪除舊文件釋放空間;或者掛載新盤。
  • 目錄權(quán)限不對(duì)。
    排查:進(jìn)入spark.local.dir臨時(shí)目錄,查詢權(quán)限。
    解決:修改成正確權(quán)限。
  • 臨時(shí)目錄文件過多。
    在spark.local.dir手動(dòng)創(chuàng)建臨時(shí)目錄時(shí),報(bào)錯(cuò)Too many links……,
    排查:查詢文件目錄下是否文件/目錄個(gè)數(shù)超限,ll | wc -l
    解決:刪除舊文件釋放空間;或者掛載新盤。

    linux ext2/ext3單個(gè)目錄下子目錄+文件個(gè)數(shù)不能超過32000,除去默認(rèn)子目錄當(dāng)前目錄(.)和上級(jí)目錄(..)之外,一個(gè)目錄下最多能創(chuàng)建31998個(gè)(子目錄+文件)。而ext4系統(tǒng)無此限制。可以通過命令df -lhT查詢。 include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000 include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000
  • inode資源不足
    排查:查詢磁盤inode資源使用,df -i
    解決:刪除舊文件釋放空間;或者掛載新盤。

  • 轉(zhuǎn)載于:https://www.cnblogs.com/HopkinsCybn/p/10087336.html

    總結(jié)

    以上是生活随笔為你收集整理的Spark任务执行期间写临时文件报错导致失败的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。