【问题标题】:Insufficient space for shared memory file when I try to run nutch generate command当我尝试运行 nutch 生成命令时,共享内存文件的空间不足
【发布时间】:2012-12-26 18:19:38
【问题描述】:

过去 3 周我一直在运行 nutch 抓取命令,现在当我尝试运行任何 nutch 命令时出现以下错误:

Java HotSpot(TM) 64-Bit Server VM 警告:空间不足 共享内存文件:/tmp/hsperfdata_user/27050 尝试使用 -Djava.io.tmpdir= 用于选择备用临时位置的选项。

错误:无法找到或加载主类___.tmp.hsperfdata_user.27055

我该如何解决这个问题?

【问题讨论】:

  • 您的硬盘上还有多少可用空间?
  • 最简单的方法是运行df 命令。查看“use%”(有时是“capacity%”)列。
  • /dev/xvda1 已使用 100%,/dev/xvdb 显示 1% 已使用且 140gb 可用

标签: java jvm nutch


【解决方案1】:

我认为使用的临时位置已满。尝试使用其他位置。另外,检查每个分区中的#inodes free 并清理一些空间。

编辑: 无需在操作系统级别更改 /tmp。我们希望 nutch 和 hadoop 使用其他位置来存储临时文件。看看这个来做到这一点: What should be hadoop.tmp.dir ?

【讨论】:

  • 如何更改临时位置?我也不知道如何检查空闲 inode 的数量并清除空间。
  • 别担心,伙计。只需谷歌它以获取命令。如果您不是极客,最安全的选择是清除 /tmp 中属于运行 nutch 进程的用户的所有文件,并在 24 小时之前创建了很长一段时间。
  • /tmp/hadoop-user/mapred/local/taskTracker/user/ 文件夹中有将近 3gb 的数据,我可以安全地删除该文件夹的内容吗?不会影响nutch爬行吧?我正在使用带有 mysql 的 nutch 2.1。我也可以删除文件夹 /tmp/hadoop-user/mapred/staging/ 中的文件吗?
  • 如果没有 nutch 和 hadoop 进程在运行,那么你可以继续删除这些东西。
  • 由于空间错误,现在什么都没有抓取,所以我想我可以删除文件夹内容吗?我想确定一下,因为我们在安装 nutch 时遇到了很多麻烦
【解决方案2】:

是的,这确实是挂载 /tmp 的卷上可用空间的问题。如果您在 EC2 或任何云平台上运行它,请附加一个新卷并将 /tmp 挂载到该卷上。如果在本地运行,除了清理以腾出更多空间之外别无选择。

尝试以下命令:df -h 以查看安装在实例上的每个卷的已用空间百分比和可用空间百分比。你会看到类似的东西:

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.9G     0 100% /
tmpfs                  30G     0   30G   0% /dev/shm
/dev/xvda3             35G  1.9G   31G   6% /var
/dev/xvda4             50G   44G  3.8G  92% /opt
/dev/xvdb             827G  116G  669G  15% /data/1
/dev/xvdc             827G  152G  634G  20% /data/2
/dev/xvdd             827G  149G  637G  19% /data/3
/dev/xvde             827G  150G  636G  20% /data/4
cm_processes           30G   22M   30G   1% /var/run/cloudera-scm-agent/process

当磁盘空间已满时,您将开始看到此错误,如此转储中所示。

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2019-11-26
    • 1970-01-01
    • 2018-12-14
    • 2019-07-27
    • 1970-01-01
    • 2021-02-15
    • 2016-05-28
    • 2013-07-13
    相关资源
    最近更新 更多