news 2026/6/23 21:09:21

Flink SQL 的 JAR 语句ADD JAR / SHOW JARS / REMOVE JAR(SQL CLI 实战 + 避坑指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flink SQL 的 JAR 语句ADD JAR / SHOW JARS / REMOVE JAR(SQL CLI 实战 + 避坑指南)

1. JAR 语句是干什么的?

官方定义:

JAR 语句用于在运行时把用户 jar 加入 classpath、从 classpath 移除,或查看已经添加的 jar。

它们主要面向SQL CLI的交互式会话使用。

2. SQL CLI 示例:三连击(ADD → SHOW → REMOVE)

2.1 添加本地 jar

FlinkSQL>ADDJAR'/path/hello.jar';[INFO]Executestatement succeeded.

2.2 添加远程 jar(例如 HDFS)

FlinkSQL>ADDJAR'hdfs:///udf/common-udf.jar';[INFO]Executestatement succeeded.

2.3 查看已添加 jar

FlinkSQL>SHOWJARS;+----------------------------+|jars|+----------------------------+|/path/hello.jar||hdfs:///udf/common-udf.jar |+----------------------------+

2.4 移除 jar

FlinkSQL>REMOVE JAR'/path/hello.jar';[INFO]The specified jarisremovedfromsessionclassloader.

3. ADD JAR:语法与能力

3.1 语法

ADDJAR'<path_to_filename>.jar'

3.2 能力说明

  • 将指定 jar 加入资源列表(会话 classpath)
  • 支持本地文件系统远程文件系统路径
  • 加完后可通过SHOW JARS查看

4. 重要限制:不要用 ADD JAR 去加载 Hive 相关(避坑必读)

官方限制(非常关键):

不要使用ADD JAR来加载 Hive source/sink/function/catalog。
这是 Hive connector 的已知限制,未来版本会修复。当前推荐按官方 Hive 集成指引进行 Hive 集成。

这句话的含义是:
即便你把 Hive 相关依赖 jar “塞进” classpath,也可能出现各种奇怪问题(类冲突、发现不到、行为不一致等)。Hive 集成通常要走更“规范”的方式(例如按官方集成步骤配置 Hive 相关依赖与模块/目录结构)。

5. SHOW JARS:查看当前会话 jar 列表

5.1 语法

SHOWJARS

5.2 作用

列出所有通过ADD JAR添加的 jar。

适用场景:

  • 确认 jar 是否加成功(路径是否正确)
  • 排查“类找不到 / UDF 找不到”时确认环境
  • 会话复用时确认是否被别人加过 jar(避免污染)

6. REMOVE JAR:移除指定 jar(仅 SQL CLI)

6.1 语法

REMOVE JAR'<path_to_filename>.jar'

6.2 说明

  • 移除指定的、由ADD JAR添加的 jar
  • 注意:REMOVE JAR 只在 SQL CLI 中生效(官方强调)

适用场景:

  • 临时调试用 jar,用完清理
  • 发生依赖冲突,移除某个 jar 做 A/B 验证
  • 会话长期复用,防止 jar 越加越多导致不可控

7. 一套实战工作流:用 JAR 语句管理 UDF

你在 SQL CLI 里注册 UDF 的常见节奏一般是:

1)添加 jar(本地或远程)

ADDJAR'/path/my-udf.jar';

2)确认 jar 已加载

SHOWJARS;

3)创建函数(示意)

CREATEFUNCTIONmy_funcAS'com.example.MyFunc';

4)验证函数可用

SHOWUSERFUNCTIONS;SELECTmy_func(col)FROMt;

5)调试结束清理

REMOVE JAR'/path/my-udf.jar';

这套流程的价值:可控、可复现、可回滚。

8. 总结

  • Flink SQL 目前支持三种 JAR 语句:ADD JARSHOW JARSREMOVE JAR
  • 核心作用:管理SQL CLI 会话 classloader中的用户 jar
  • ADD JAR支持本地/远程文件系统路径
  • 重要限制:不要用ADD JAR加载 Hive source/sink/function/catalog(Hive connector 已知限制)
  • REMOVE JAR仅在 SQL CLI 生效
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:36:29

Open-AutoGLM工作流监控实战指南(实时可视化监控体系搭建全解析)

第一章&#xff1a;Open-AutoGLM工作进度监控概述在大规模语言模型&#xff08;LLM&#xff09;自动化任务系统中&#xff0c;Open-AutoGLM 作为一个开源框架&#xff0c;致力于实现从任务调度、模型推理到结果反馈的全流程闭环管理。为了保障系统的稳定性与可维护性&#xff0…

作者头像 李华
网站建设 2026/6/23 18:24:09

别让“小眼镜”挡住清晰世界!儿童近视防控,家长必知的科学指南

小学里3个孩子就有1个近视&#xff0c;初中更是7成以上&#xff0c;高中超过8成——这不是危言耸听&#xff0c;而是我国儿童青少年视力健康的真实写照。作为家长&#xff0c;我们该如何守护孩子的明亮双眸&#xff1f;一、不同年龄段&#xff0c;近视防控有侧重1.学前阶段&…

作者头像 李华
网站建设 2026/6/23 1:47:34

AI赋能会议管理,Open-AutoGLM预约系统深度解析

第一章&#xff1a;AI赋能会议管理&#xff0c;Open-AutoGLM预约系统深度解析在智能化办公场景不断演进的背景下&#xff0c;会议管理正从传统人工协调向AI驱动的自动化系统转型。Open-AutoGLM作为一款基于大语言模型&#xff08;LLM&#xff09;的开源会议预约系统&#xff0c…

作者头像 李华
网站建设 2026/6/23 18:39:04

打开Simulink工程时总得先泡杯咖啡——电池模型搭建这事儿,手动调参太费劲。不过这次咱们直接用二阶RC等效电路模型开搞,毕竟既要考虑极化效应又要平衡计算量

锂离子电池soc估计 采用simulink全模块搭建 可得到辨识估计端电压与仿真端电压曲线 模型估计精度较好&#xff0c;可以完好运行电池端电压的数学表达式得先捋清楚&#xff1a; % 电池端电压方程 function V_terminal batteryModel(SOC, I, R0, R1, R2, C1, C2, tau1, tau2)V_o…

作者头像 李华
网站建设 2026/6/23 19:13:53

读懂HikariCP一百行代码,多线程就是个孙子

总结&#xff1a;Java届很难得有读百十行代码就能增加修炼的机会&#xff0c;这里有一个。通常&#xff0c;我在看书的时候一般不写代码&#xff0c;因为我的脑袋被设定成单线程的&#xff0c;一旦同时喂给它不同的信息&#xff0c;它就无法处理。但多线程对电脑来说就是小菜一…

作者头像 李华
网站建设 2026/6/23 19:13:55

SMP语言基础知识-应用系统,开发的痛点,开发者的痛点

上篇文章介绍了需求的来源和需求方的痛点&#xff0c;这些痛点会影响到应用系统开发的质量、时间和费用。 今天我们再来看看开发&#xff0c;看看开发的痛点和开发者的痛点。 这里的开发方是指直接参与应用系统开发的人员&#xff0c;主要是项目组人员&#xff0c;至于软件公司…

作者头像 李华