Apache storm 在本地模式下运行的Twitter风暴示例无法删除文件

Apache storm 在本地模式下运行的Twitter风暴示例无法删除文件,apache-storm,apache-zookeeper,Apache Storm,Apache Zookeeper,我正在运行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-3

我正在运行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中运行时都会出现此错误。

因此,storm版本0.8.2中仍然存在此问题。到目前为止,以下变通方法对我有效。您可能需要注释掉
cluster.killTopology()和cluster.shutdown()方法,如下所示,以避免文件删除错误

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

希望,这有帮助

我考虑过这一点,但是文档中提到了资源泄漏。这可能会使线程在后台运行而无法终止它们吗?感谢您链接非常有用的github讨论。是的,本地模式下的线程和Java进程一直在运行,直到您通过IDE或process explorer终止Java进程。因为本地模式用于测试开发,所以应该可以。我不确定在群集模式下是否存在此问题。幸运的是,我没有尝试运行windows群集,因此即使它在那里运行,它也应该是可管理的。谢谢你的信息!