IOError(Stalefile)异常被Kafka Streams抛出



当运行我的有状态Kafka流应用程序时,我遇到了各种不同的RocksDB磁盘I/O Stalefile异常。只有当我至少有一个KTable实现时才会出现异常,并且它会在不同的时间发生。我试了无数次都没能成功。

App/环境细节:

  • 运行时:Java
  • Kafka库:org.apache.kafka: Kafka -streams:2.5.1
  • 部署:OpenShift
  • 卷类型:NFS
  • RAM:2000 - 8000 MiB
  • CPU:200 Millicores to 2 Cores
  • 1
  • 线程:
  • 分区:1 - many

遇到异常:

  • 由于:org.apache.kafka.streams.errors.ProcessorStateException: Error while getting value for key from at org.apache.kafka.streams.state.internals.RocksDBStore.get(RocksDbStore.java:301)

  • Caused by: org.apache.kafka.streams.errors.ProcessorStateException: Error restoring batch to store at org.apache.kafka.streams.state.internals.RocksDBStore$RocksDBBatchingRestoreCallback.restoreAll(RocksDbStore.java:636)

  • Caused by: org.apache.kafka.streams.errors.ProcessorStateException: Error while range compacting during restoring at org.apache.kafka.streams.state.internals.RocksDBStore$SingleColumnFamilyAccessor.toggleDbForBulkLoading(RocksDbStore.java:616)

  • Caused by: org.apache.kafka.streams.errors.ProcessorStateException: Error while executing flush from store at org.apache.kafka.streams.state.internals.RocksDBStore.flush(RocksDbStore.java:616)

很抱歉不能发布整个堆栈跟踪,但是上面所有的异常似乎都引用了org.rocksdb.RocksDBException: IOError(Stalefile)异常。

附加信息:

  • 使用持久状态目录
  • Kafka主题设置使用默认值创建
  • 在单个线程上运行单个实例
  • 在读取和写入过程中引发异常
  • 使用有效数据时引发异常
  • 内部重分区主题也发生异常

我非常感谢你的帮助,如果我能提供任何进一步的信息,请告诉我。

如果您使用的是Posix文件系统,则此错误意味着文件系统返回ESTALE。参见https://man7.org/linux/man-pages/man3/errno.3.html

中对代码的描述。

最新更新