• java.io.IOException: No space left on device 错误


    今天碰到比较奇怪的问题:

    7/05/14 19:20:24 INFO util.Utils: Fetching http://192.168.31.160:33039/jars/spark_study_java-0.0.1-SNAPSHOT-jar-with-dependencies.jar to /tmp/spark-446068a4-aaa4-4277-b009-908bf0d4ecac/executor-dcc3175b-7d19-4485-81e1-bf31a83a66b4/spark-3f849149-bcfb-44a2-90f6-c71f31098c30/fetchFileTemp8558073324247536081.tmp
    17/05/14 19:20:24 ERROR executor.Executor: Exception in task 0.0 in stage 0.0 (TID 0)
    java.io.IOException: No space left on device
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:345)
        at org.apache.spark.util.Utils$$anonfun$copyStream$1.apply$mcJ$sp(Utils.scala:286)
        at org.apache.spark.util.Utils$$anonfun$copyStream$1.apply(Utils.scala:252)
        at org.apache.spark.util.Utils$$anonfun$copyStream$1.apply(Utils.scala:252)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1206)
        at org.apache.spark.util.Utils$.copyStream(Utils.scala:292)
        at org.apache.spark.util.Utils$.downloadFile(Utils.scala:415)
        at org.apache.spark.util.Utils$.doFetchFile(Utils.scala:557)
        at org.apache.spark.util.Utils$.fetchFile(Utils.scala:356)

    总是报错,试了网上说的

    第一种:修改配置文件spark-env.sh,把临时文件引入到一个自定义的目录中去即可

    export SPARK_LOCAL_DIRS=/home/utoken/datadir/spark/tmp

    第二种:偷懒方式,针对tmp目录不启用tmpfs,直接修改/etc/fstab

    几种解决办法也还是不行,后来通过df -h 查看两个work节点 /dev/mapper/vg_spark1-lv_root 都占满了,这是怎么回事,经过查找,原来是自己不断测试程序,.jar 包不断上传到work节点上,由于.jar 是带有依赖的,所以比较大。不断上传使work【/usr/local/spark-1.5.1/work】节点的目录空间满了。

    清除以后,完美运行。

    注:使用du -sh * 命令也可以列出当前文件以及文件夹的大小。这个命令要注意:sh与*之前要有个空格的。

  • 相关阅读:
    break-continue
    函数定义
    函数类型
    为何要继承SpringBootServletInitializer,为何要实现configure这方法
    查询一个表中的两个字段值相同的数据
    数据库中查出来的时间多8小时&查询数据正常展示少8小时
    @JsonFormat与@DateTimeFormat注解的使用
    用js获取当前月份的天数
    js获取当前年,月,日,时,分,秒
    maven配置和安装
  • 原文地址:https://www.cnblogs.com/haibin168/p/6854314.html
Copyright © 2020-2023  润新知