当前位置: 首页 > news >正文

二百零一、Flink——Flink配置状态后端运行后报错:Can not create a Path from an empty string

一、目的

在尚硅谷学习用Flink配置状态后端的项目中,运行报错Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path from an empty string

二、Flink的状态后端(state backend)类型

(一)MemoryStateBackend

1、内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在TaskManager的JVM堆上;2、而将 checkpoint 存储在 JobManager 的内存中。

(二)FsStateBackend

1、将checkpoint 存到远程的持久化文件系统(FileSystem)上。
2、而对于本地状态,跟 MemoryStateBackend 一样,也会存在 TaskManager 的 JVM 堆上。

(三)RocksDBStateBackend

1、将所有状态序列化后,存入本地的 RocksDB 中存储。
2、注意:RocksDB 的支持并不直接包含在 flink 中,需要引入依赖

三、报错详情

Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path from an empty string
    at org.apache.flink.core.fs.Path.checkAndTrimPathArg(Path.java:168)
    at org.apache.flink.core.fs.Path.<init>(Path.java:181)
    at org.apache.flink.runtime.state.filesystem.FsStateBackend.<init>(FsStateBackend.java:140)
    at cn.kgc.apitest.state.StateTest4_FaultTolerance.main(StateTest4_FaultTolerance.java:31)

四、报错原因

经查,无法从空字符串创建路径是因为状态后端配置的尚硅谷代码里

FsStateBackend和RocksDBStateBackend的参数为空,所以无法通过checkpoint

(一)尚硅谷代码

(二)本地代码

五、解决措施

(一)注释掉这两行代码

//     env.setStateBackend( new FsStateBackend(""));
//     env.setStateBackend( new RocksDBStateBackend(""));

(二)改好后运行项目

1、先运行IDEA项目

2、然后在XShell中输入数据

3、在IDEA中出现运行结果

运行成功,没有报错!

又解决了一个问题,日清日高!

http://www.lryc.cn/news/221011.html

相关文章:

  • Python 爬虫基础
  • 亚马逊云科技大语言模型的创新科技
  • Qt 各种数据类型
  • 电动车展示预约小程序的作用如何
  • 「随笔」浅谈2023年云计算的发展趋势
  • 高性能三防工业平板电脑 防摔防爆电容屏工控平板
  • mac flutter pb解析报错:protoc-gen-dart: program not found or is not executable
  • PostgreSQL 连接是否要通过SSL,为什么使用SSL 连接后,业务部门会投诉我?
  • Linux驱动开发——USB设备驱动
  • 微服务使用指南
  • MYSQL运维篇(已完结)
  • MapReduce性能优化之小文件问题和数据倾斜问题解决方案
  • 面向萌新的数学建模入门指南
  • 基于 golang 从零到一实现时间轮算法 (二)
  • 【系统架构设计】架构核心知识: 5 系统安全性与保密性设计
  • 无人零售奶柜:革新牛奶购买体验
  • 【Mybatis小白从0到90%精讲】15: Mybatis配置打印SQL日志
  • vue3-video-play视频播放组件
  • vue项目中页面遇到404报错
  • 快手直播弹幕websocket protobuf序列化与反序列化
  • viple入门(三)
  • Vue渲染函数渲染html
  • Odoo|“视图”和“模型”之间的数据传输
  • Electron进程通信的另一种方式
  • 二次型的相关理解
  • Spring框架中用于注入构造函数参数的标签constructor-arg
  • spdlog简单介绍和使用
  • 分类模型的Top 1和Top 5
  • LinkdeList集合
  • KaiOS APN配置文件apn.json调试验证方法(无需项目全编)