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

flink1.19.2+cdc-3.2.1遇到的问题及解决方案

No operators defined in streaming topology. Cannot generate StreamGraph

原因是博主想通过在flinkjar中写flinksql,以jar的方式提交application模式的作业(因为无法直接使用yarn-application提交flinksql)。
代码中有create和insert intosql,但是运行时报上面错误,各方面查找资料,其原因是flink没有识别insert操作,解决方案就是显示提交insert
错误代码

public static void execute(String content, TableEnvironment tEnv) {List<String> insertSql = new ArrayList<>();// 分割SQL语句Arrays.stream(content.split(";")).map(String::trim).filter(s -> !s.isEmpty()).forEach(sql -> {sql = sql.replaceAll(SEMICOLON, ";").replaceAll(SY, "\"").replaceAll(SDY, "`");if (!sql.endsWith(";")) {sql = sql + ";"; // 加上分号}System.out.println("执行SQL>>>" + sql);tEnv.executeSql(sql);});
}

修改后

public static void execute(String content, TableEnvironment tEnv) {List<String> insertSql = new ArrayList<>();// 分割SQL语句Arrays.stream(content.split(";")).map(String::trim).filter(s -> !s.isEmpty()).forEach(sql -> {if (!sql.endsWith(";")) {sql = sql + ";"; // 加上分号}if (sql.toUpperCase().startsWith("INSERT")) {insertSql.add(sql);} else {System.out.println("执行SQL>>>" + sql);tEnv.executeSql(sql);}});// 统一执行insert// 显式触发, 否则会报错The main method caused an error: No operators defined in streaming topology. Cannot execute.if (insertSql.size() > 0) {StatementSet stmtSet = tEnv.createStatementSet();for (String insert : insertSql) {// 添加多个 INSERT 语句System.out.println("执行SQL>>>" + insert);stmtSet.addInsertSql(insert);}try {// 执行并设置作业名称TableResult result = stmtSet.execute();JobClient jobClient = result.getJobClient().orElseThrow(() -> new RuntimeException("无法获取JobClient"));System.out.println("等待作业启动...");// 等待作业进入运行状态JobStatus status = jobClient.getJobStatus().get(STATUS_TIMEOUT, TimeUnit.SECONDS);if (status == JobStatus.RUNNING) {System.out.println("作业已正常运行");// 添加2秒延迟确保状态同步Thread.sleep(2000);} else {throw new IllegalStateException("作业启动失败,状态: " + status);}} catch (InterruptedException | ExecutionException e) {e.printStackTrace();throw new RuntimeException(e);} catch (TimeoutException e) {throw new RuntimeException(e);}}}

ERROR org.apache.flink.shaded.curator5.org.apache.curator.ConnectionState - Authentication failed

在flink的conf.yml添加

zookeeper:sasl:disable: true

hadoop日志里中文显示成了问号

在flink的conf.yml添加

env:java:opts:all: -Dfile.encoding=UTF-8

Invalid event: APP_UPDATE_SAVED at ACCEPTED

flink/lib下添加flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar

java.lang.NoSuchMethodError: org.apache.commons.cli.Option.builder(Ljava/lang/String;)Lorg/apache/commons/cli/Option$Builder;

flink/lib下添加commons-cli-1.5.0.jar

yarn启动容器使用随机端口的问题

需要节点间端口互通,否则经常会因为端口不通而导致容器启动不起来
#假设要允许192.168.0.66和192.168.0.67访问本机所有端口

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.66" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.67" accept'
sudo firewall-cmd --reload
http://www.xdnf.cn/news/977761.html

相关文章:

  • Ubuntu 实现可视化组raid和升级raid
  • 成功在 Conda Python 2.7 环境中安装 Clipper(eCLIP peak caller)
  • Linux 系统可视化管理工具
  • python学习打卡day50
  • JPA将大数据量的Excel文件导入到数据库中
  • 拼音字母a和g的写法
  • AI Agent 核心策略解析:Function Calling 与 ReAct 的设计哲学与应用实践
  • React 第五十九节 Router中 createBrowserRouter使用详解与案例分析
  • Etcd数据持久化机制:WAL与Snapshot解析
  • python数据结构和算法(5)
  • zset类型
  • Bright Data网页抓取工具实战:BOSS直聘爬虫 + PandasAI分析洞察前端岗位市场趋势
  • 深度学习小项目合集之图像分割识别-视频介绍下自取
  • ThreadLocal实现原理
  • SpringBoot前后台交互 -- 登录功能实现(拦截器+异常捕获器)
  • 音频导入规范
  • 大模型实战篇之ChatGPT(国内可以用)一、实现连续对话智能体
  • 【Linux shell】条件判断和流程控制
  • DL00124-基于YOLOv12深度学习的棉花叶片病害检测含完整数据集
  • BERT 模型微调与传统机器学习的对比
  • uniapp音乐播放createInnerAudioContext
  • 零基础实战:云开发家政维修小程序搭建指南
  • UniApp组件封装,2025年最新HarmonyOS鸿蒙模块化开发项目式教程
  • vue3 + element plus 实现表格列头、行的添加及拖动换位
  • vue前端面试题——记录一次面试当中遇到的题(1)
  • element-ui 的el-table,多选翻页后,之前选择的数据丢失问题处理
  • 黑马教程强化day2-1
  • JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)
  • Linux 文件内容的查询与统计
  • xilinx的gt的ALIGN_COMMA_WORD设置的作用