【问题标题】:Twitter storm example running in local mode cannot delete file在本地模式下运行的 Twitter Storm 示例无法删除文件
【发布时间】:2013-05-15 13:23:01
【问题描述】:

我正在运行storm starter项目(https://github.com/nathanmarz/storm-starter),运行一段时间后抛出以下错误。

23135 [main] ERROR org.apache.zookeeper.server.NIOServerCnxn  - Thread Thread[main,5,main] died 
java.io.IOException: Unable to delete file: C:\Users\[user directory]\AppData\Local\Temp\a0894222-6a8a-4f80-8655-3ad6a0c10021\version-2\log.1
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
    at backtype.storm.util$rmr.invoke(util.clj:413)
    at backtype.storm.testing$kill_local_storm_cluster.invoke(testing.clj:164)
    at backtype.storm.LocalCluster$_shutdown.invoke(LocalCluster.clj:32)
    at backtype.storm.LocalCluster.shutdown(Unknown Source)
    at storm.starter.ExclamationTopology.main(ExclamationTopology.java:82)

我已尝试更改“AppData”目录的权限,但这似乎不影响它。在命令行和 Eclipse 中运行它都会出现此错误。

【问题讨论】:

    标签: apache-storm apache-zookeeper


    【解决方案1】:

    根据File delete problem on Windows,这个问题在storm 0.8.2版本中仍然存在。截至目前,以下解决方法对我有用。可能需要注释掉cluster.killTopology() and cluster.shutdown()方法,如下图,避免文件删除错误。

     LocalCluster cluster = new LocalCluster();
            cluster.submitTopology("test", conf, builder.createTopology());
            Utils.sleep(10000);
           // cluster.killTopology("test");
           // cluster.shutdown();  
    

    希望,这会有所帮助

    【讨论】:

    • 我正在考虑这个,但是文档提到了资源泄漏。这可能会使线程在后台运行而无法终止它们吗?感谢您链接非常有用的 github 讨论。
    • 是的,本地模式下的线程和 Java 进程会一直运行,直到您通过 IDE 或进程资源管理器终止 Java 进程。由于本地模式用于测试开发,应该没问题。我不确定集群模式是否存在这个问题。
    • 幸运的是,我没有尝试运行 Windows 集群,因此即使它确实在那里运行它也应该是可管理的。感谢您的信息!
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    相关资源
    最近更新 更多