spark任务在执行期间,有时候会遇到临时目录创建失败,导致任务执行错误。

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

spark执行过程的文件夹

  1. spark创建临时文件机制
    spark作为并行计算框架,同一个作业会被划分为多个任务在多个节点执行,reduce的输入可能存在于多个节点,因此需要shuffle将所有reduce的输入汇总起来;而shuffle时需要通过diskBlockManage将map结果写入本地,优先写入memory store,在memore store空间不足时会创建临时文件。
  2. 临时文件夹配置
    memory store的大小取决于spark.excutor.memory参数,默认为spark.excutor.memory*0.6;可通过spark.env中添加配置SPARK_LOCAL_DIRS或程序中设定spark.local.dir,可配置多个路径,逗号分隔增强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.

原因分析

常见原因包括

  1. 临时目录文件过多导致,当一个spark任务执行失败时,之前创建的临时文件不会被删除,就会残留下来,spark任务失败次数越多,就越可能导致临时目录故障。
  2. 磁盘空间、inode资源、权限(比如巡检项修改)等

主要排查手段

进入临时目录,查看下临时目录当前状况,尝试手动创建是否ok。
  1. 磁盘空间问题。
    排查:磁盘空间不足,或者磁盘掉载;通过df -hdu -sh或者fdisk查询磁盘空间。
    解决:删除旧文件释放空间;或者挂载新盘。
  2. 目录权限不对。
    排查:进入spark.local.dir临时目录,查询权限。
    解决:修改成正确权限。
  3. 临时目录文件过多。
    在spark.local.dir手动创建临时目录时,报错Too many links……
    排查:查询文件目录下是否文件/目录个数超限,ll | wc -l
    解决:删除旧文件释放空间;或者挂载新盘。

    linux ext2/ext3单个目录下子目录+文件个数不能超过32000,除去默认子目录当前目录(.)和上级目录(..)之外,一个目录下最多能创建31998个(子目录+文件)。而ext4系统无此限制。可以通过命令df -lhT查询。
    include/linux/ext2_fs.h:#define EXT2_LINK_MAX           32000
    include/linux/ext3_fs.h:#define EXT3_LINK_MAX           32000
  4. inode资源不足
    排查:查询磁盘inode资源使用,df -i
    解决:删除旧文件释放空间;或者挂载新盘。

转载于:https://www.cnblogs.com/HopkinsCybn/p/10087336.html

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

  1. SAP QM中阶执行事务代码QDB1,报错- Inspection severity 001 AQL 0.650 not in sampling schema A01-

    SAP QM中阶执行事务代码QDB1,报错- Inspection severity 001 AQL 0.650 not in sampling schema A01- 对于sampling proc ...

  2. SAP QM初阶执行事务代码QDB1,报错- Sampling procedure NM000001 has no sampling scheme-

    SAP QM初阶执行事务代码QDB1,报错- Sampling procedure NM000001 has no sampling scheme- SAP QM模块里,事务代码QDB1用于维护取样策 ...

  3. SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-

    SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete- 执行事务代码QA11试图为 ...

  4. SAP MM 执行事务代码MRRL报错-No message was found for partner 100065 company code 0001-

    SAP MM 执行事务代码MRRL报错-No message was found for partner 100065 company code 0001- 1, 执行事务代码MRRL 触发invoi ...

  5. SAP MM 对采购订单执行收货,报错 - Table T169P entry ZNMI does not exist -

    SAP MM 对采购订单执行收货,报错 - Table T169P entry ZNMI does not exist - 如下的采购订单 4500000754, 执行事务代码MIGO, 对于做101 ...

  6. SAP MM 执行事务代码VL10B 报错-4501378483 000010 Only 0 CS of material ### available-

    SAP MM 执行事务代码VL10B 报错-4501378483 000010 Only 0 CS of material 5011238 available- 笔者在项目上做一个测试,遇到了一个问题 ...

  7. mysql load报错_mysql:执行LOAD DATA LOCAL 报错

    mysql:执行LOAD DATA LOCAL 报错. 我使用navicat for mysql 连接 mysql服务器执行local 可以正常执行 . show VARIABLES like  '% ...

  8. pandas写excel报错ModuleNotFoundError: No module named ‘xlwt‘

    pandas写excel报错ModuleNotFoundError: No module named 'xlwt' https://blog.csdn.net/weixin_36372879/arti ...

  9. python打开文件报错无效序列_解决Python 写文件报错TypeError的问题

    处理上传的文件: f1 = request.FILES['pic'] fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name) with open(fname, ...

最新文章

  1. “半真半假”DeepFake换脸也能精准识别?阿里安全提出全新检测方法
  2. spring AOP编程
  3. 当铺密码解密脚本--[GKCTF2020]汉字的秘密
  4. 王爽《汇编语言》第三版 第三章 内存访问
  5. python pyqt eric_Python3.6 + Pyqt5 + Eric6 环境搭建
  6. webstorm的安装
  7. vue在less中使用css3 calc 被解析 的问题
  8. 最大素因子(不是题目!自己写着玩的。。。)
  9. 揭秘政企安全加速解决方案的架构与应用场景实践
  10. java offsetdatetime_Java OffsetDateTime withHour()用法及代码示例
  11. python 硬件自动化测试_村长告诉你:Python实现性能自动化测试竟然如此简单
  12. 【翻译】CryEngine3下的Hair Shader
  13. 华为鸿蒙何时上线,华为鸿蒙上线在即,国产手机继小米、OPPO之后,魅族也表态了...
  14. 【译】LiveData三连
  15. WIN7 经典“致命错误 C0000034”解决方法
  16. FTDI 2232H GPIO设置 NAND Read
  17. DeepMind再爆性骚扰丑闻!内部邮件泄露,色狼自夸猛男
  18. 管家婆软件批量导入商品信息教程
  19. Pytest_fixture装饰器、调用fixture的三种方法、usefixtures与传fixture区别、fixture自动使用autouse=True
  20. RuntimeError: Failed to init API, possibly an invalid tessdata path: C:\User

热门文章

  1. Codeforces 1491 D. Zookeeper and The Infinite Zoo (二进制处理)
  2. css expressionr,CSS Expression讲解
  3. tomcat 4.0头文件及maven导出问题万能build模板
  4. Shell(10)——sed(2)
  5. opengl教程 linux,绘制基本的几何图形 - OpenGL编程学习实战教程_Linux编程_Linux公社-Linux系统门户网站...
  6. 如何在ubuntu下安装detectron2_如何在 Debian/Ubuntu 上手动安装安全更新?
  7. 5.慎重选择删除元素的方法
  8. C++获取字符串长度详解
  9. [转]vim基础入门、语法速探、快捷键与宏
  10. shell编程-实现线性筛