有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当我试图运行nutch generate命令时,java没有足够的空间来存储共享内存文件

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

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: /tmp/hsperfdata_user/27050 Try using the -Djava.io.tmpdir= option to select an alternate temp location.

Error: Could not find or load main class ___.tmp.hsperfdata_user.27055

我该如何解决这个问题


共 (2) 个答案

  1. # 1 楼答案

    是的,这真的是一个问题,你的/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
    

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

  2. # 2 楼答案

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

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