2016-06-24 16 views
1

Unterer Fehler wird nach Stromlauf für bestimmte Zeit gegeben? Ich kann nicht herausfinden, wer für die Erstellung der .sst-Datei verantwortlich ist.Kafka-Streams Zustand dir io Fehler

Env:

Kafka version 0.10.0-cp1

scala 2.11.8

org.apache.kafka.streams.errors.ProcessorStateException: Error while executing flush from store agg 
     at org.apache.kafka.streams.state.internals.RocksDBStore.flushInternal(RocksDBStore.java:424) 
     at org.apache.kafka.streams.state.internals.RocksDBStore.flush(RocksDBStore.java:414) 
     at org.apache.kafka.streams.state.internals.MeteredKeyValueStore.flush(MeteredKeyValueStore.java:165) 
     at org.apache.kafka.streams.processor.internals.ProcessorStateManager.flush(ProcessorStateManager.java:330) 
     at org.apache.kafka.streams.processor.internals.StreamTask.commit(StreamTask.java:247) 
     at org.apache.kafka.streams.processor.internals.StreamThread.commitOne(StreamThread.java:446) 
     at org.apache.kafka.streams.processor.internals.StreamThread.commitAll(StreamThread.java:434) 
     at org.apache.kafka.streams.processor.internals.StreamThread.maybeCommit(StreamThread.java:422) 
     at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:340) 
     at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:218) 
Caused by: org.rocksdb.RocksDBException: IO error: /tmp/kafka-streams/pos/0_0/rocksdb/agg/000008.sst: No such file or directory 
     at org.rocksdb.RocksDB.flush(Native Method) 
     at org.rocksdb.RocksDB.flush(RocksDB.java:1329) 
     at org.apache.kafka.streams.state.internals.RocksDBStore.flushInternal(RocksDBStore.java:422) 
     ... 9 more 
[2016-06-24 11:13:54,910] ERROR Failed to commit StreamTask #0_0 in thread [StreamThread-1]: (org.apache.kafka.streams.processor.internals.StreamThread:452) 
org.apache.kafka.streams.errors.ProcessorStateException: Error while batch writing to store agg 
     at org.apache.kafka.streams.state.internals.RocksDBStore.putAllInternal(RocksDBStore.java:324) 
     at org.apache.kafka.streams.state.internals.RocksDBStore.flushCache(RocksDBStore.java:379) 
     at org.apache.kafka.streams.state.internals.RocksDBStore.flush(RocksDBStore.java:411) 
     at org.apache.kafka.streams.state.internals.MeteredKeyValueStore.flush(MeteredKeyValueStore.java:165) 
     at org.apache.kafka.streams.processor.internals.ProcessorStateManager.flush(ProcessorStateManager.java:330) 
     at org.apache.kafka.streams.processor.internals.StreamTask.commit(StreamTask.java:247) 
     at org.apache.kafka.streams.processor.internals.StreamThread.commitOne(StreamThread.java:446) 
     at org.apache.kafka.streams.processor.internals.StreamThread.commitAll(StreamThread.java:434) 
     at org.apache.kafka.streams.processor.internals.StreamThread.shutdown(StreamThread.java:248) 
     at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:228) 
Caused by: org.rocksdb.RocksDBException: IO error: /tmp/kafka-streams/pos/0_0/rocksdb/agg/000008.sst: No such file or directory 
     at org.rocksdb.RocksDB.write0(Native Method) 
     at org.rocksdb.RocksDB.write(RocksDB.java:546) 
     at org.apache.kafka.streams.state.internals.RocksDBStore.putAllInternal(RocksDBStore.java:322) 
     ... 9 more 

Antwort

4

RocksDB wird intern von Kafka Streams verwendet Operator Zustand zu handhaben - und RocksDB einige Dateien auf die Festplatte schreiben.

Ist es möglich, dass jemand Sachen in /tmp Ordner gelöscht hat, und damit den Status Ihrer Kafka Streams-Anwendung löschen? Wenn ja, so konfigurieren, einen anderen Zustand Speicherort mit dem Parameter state.dir (siehe http://docs.confluent.io/current/streams/developer-guide.html#optional-configuration-parameters)

+0

Ja das scheint es zu sagen alle: 'Verursacht durch: org.rocksdb.RocksDBException: IO-Fehler:/tmp/kafka-streams/po/0_0 /rocksdb/agg/000008.st: Keine solche Datei oder kein Verzeichnis. –

+0

@ rahul-shukla Hat dies Ihre Frage beantwortet? Wenn ja, kannst du das akzeptieren und/oder upvoten. –

+0

@ matthias-j-sax Können Sie klären, was passiert, wenn der Status dir beim Neustart gelöscht wird? Führt dies zu einem inkonsistenten Verhalten der kafka streams App für den nächsten Lauf? Soll der Staat sorgfältig konserviert werden? Ich konnte dies auf Confluent-Dokumenten nicht finden. – Oleg