flink本地模式使用rocksdb进行checkpoint报错:RocksDBException: Failed to create a NewWriteab

179 阅读1分钟

问题描述

直接上报错信息:

Caused by: org.rocksdb.RocksDBException: Failed to create a NewWriteableFile: C:\Users\Administrator\AppData\Local\Temp\flink-io-3637be1e-b982-4de7-a643-98bd062a23fa\job_c8270e0ad47120a2bbb41c9248d12b61_op_CoBroadcastWithKeyedOperator_0870208ff4dca709d2f696e27c7ceb4e__6_6__uuid_c1d2dfdb-0c7b-4d0c-8fca-2f9144efa5e4\chk-2.tmp/MANIFEST-000004: ϵͳÕҲ»µ½ָ¶
    at org.rocksdb.Checkpoint.createCheckpoint(Native Method)
    at org.rocksdb.Checkpoint.createCheckpoint(Checkpoint.java:51)
    at org.apache.flink.contrib.streaming.state.snapshot.RocksIncrementalSnapshotStrategy.takeDBNativeCheckpoint(RocksIncrementalSnapshotStrategy.java:292)
    at org.apache.flink.contrib.streaming.state.snapshot.RocksIncrementalSnapshotStrategy.syncPrepareResources(RocksIncrementalSnapshotStrategy.java:157)
    at org.apache.flink.contrib.streaming.state.snapshot.RocksIncrementalSnapshotStrategy.syncPrepareResources(RocksIncrementalSnapshotStrategy.java:83)
    at org.apache.flink.runtime.state.SnapshotStrategyRunner.snapshot(SnapshotStrategyRunner.java:77)
    at org.apache.flink.contrib.streaming.state.RocksDBKeyedStateBackend.snapshot(RocksDBKeyedStateBackend.java:551)
    at org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.snapshotState(StreamOperatorStateHandler.java:242)
    ... 34 more

解决方法

  1. 创建其他目录,例如:C:\Me\flink\temp

  2. 配置jvm启动参数:-Djava.io.tmpdir=C:/Me/flink/temp(注意是/,不是\)

如果是高版本flink,则设置jvm参数为:`-Dprocess.working-di=C:/Me/flink/temp

如图是idea中启动的配置参数

image.png

  1. 启动flink项目后,可以看到目录下生成的文件

image.png

参考: blog.csdn.net/weixin_4238…