2013-05-20 8 views
6

Uruchomiłem projekt burzy (https://github.com/nathanmarz/storm-starter) i po uruchomieniu generuje on następujący błąd.Przykład burzy Twittera działającej w trybie lokalnym nie może usunąć pliku

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) 

Próbowałem zmienić uprawnienia do katalogu "AppData", ale wydaje się, że nie ma to wpływu. Pojawia się ten błąd, uruchamiając go zarówno w wierszu poleceń, jak i wewnątrz zaćmienia.

Odpowiedz

10

Na ten File delete problem on Windows ten problem nadal występuje w wersji burzowej 0.8.2. W chwili obecnej poniższe rozwiązanie obejściło się dla mnie. Może być konieczne skomentowanie metod cluster.killTopology() and cluster.shutdown(), jak pokazano poniżej, aby uniknąć błędu usuwania pliku.

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

Hope this helps

+0

Rozważałem to jednak dokumentacja wspomina przecieków zasobów. Czy to może pozostawić wątki działające w tle bez możliwości ich zakończenia? Dziękuję za powiązanie dyskusji Github, która jest bardzo przydatna. – FearTheCron

+0

Tak, wątki i proces Java w trybie lokalnym działają, dopóki nie zabijesz procesu Java za pośrednictwem IDE lub eksploratora procesów. Ponieważ do testowania rozwoju używany jest tryb lokalny, powinien on być w porządku. Nie jestem pewien, czy ten problem istnieje w trybie klastra. –

+0

Na szczęście nie próbuję uruchamiać klastrów systemu Windows, więc powinno to być możliwe do zarządzania, nawet jeśli ma to miejsce. Dzięki za informację! – FearTheCron