news 2026/4/23 7:31:57

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/4/23 7:31:20

赞!idea 如何单窗口打开多个项目?

我的笔记本连接了2块显示器&#xff0c;加上自带的那块&#xff0c;一共是3块。即使是这样&#xff0c;但依然不够用。没别的原因&#xff0c;每天都在无数个项目中切换&#xff0c;IDEA的窗口开的多&#xff0c;就把它平铺在桌面上。当想要切换到某个项目的时候&#xff0c;还…

作者头像 李华
网站建设 2026/4/23 7:28:14

28、powershell快速删除 node_modules

声明 本文内容由AI工具生成生成工具&#xff1a;[百度AI]生成时间&#xff1a;[2025年12月21日]版权声明&#xff1a;本文遵循CC BY-NC 4.0协议在 PowerShell 中快速删除 node_modules 文件夹及其所有内容&#xff0c;你可以使用 Remove-Item 命令。这个命令可以用来删除文件、…

作者头像 李华
网站建设 2026/4/23 7:31:37

为什么90%的智慧医院都在测试Open-AutoGLM?真相令人震惊

第一章&#xff1a;为什么90%的智慧医院都在测试Open-AutoGLM&#xff1f;真相令人震惊在医疗智能化浪潮中&#xff0c;Open-AutoGLM 正以惊人的速度渗透进全球智慧医院的核心系统。这款开源的自动医学语言生成模型&#xff0c;不仅具备强大的临床语义理解能力&#xff0c;还能…

作者头像 李华
网站建设 2026/4/18 0:31:27

Open-AutoGLM待办同步安全风险预警:5大隐患及企业级防护方案

第一章&#xff1a;Open-AutoGLM待办同步安全风险概述Open-AutoGLM 是一个用于自动化任务调度与大语言模型集成的开源框架&#xff0c;其核心功能之一是待办事项的跨平台同步。然而&#xff0c;在实现高效同步的同时&#xff0c;系统面临多种潜在的安全风险&#xff0c;尤其是在…

作者头像 李华
网站建设 2026/4/15 15:39:23

为什么头部保险公司都在用Open-AutoGLM做到期提醒?真相令人震惊,

第一章&#xff1a;为什么头部保险公司都在用Open-AutoGLM做到期提醒&#xff1f;真相令人震惊在保险行业数字化转型的浪潮中&#xff0c;客户保单到期提醒的自动化与精准化已成为提升续保率的关键环节。越来越多头部保险公司悄然采用名为 Open-AutoGLM 的开源智能提醒系统&…

作者头像 李华
网站建设 2026/4/20 9:03:49

C++类的构造顺序

1. C 类成员与自身的构造和析构顺序 默认先构造类成员&#xff08;类成员的构造顺序就是类成员在类中被书写的顺序&#xff09;&#xff0c;然后再构造类本身。参看 “测试代码 1”。默认先析构类本身&#xff0c;然后再析构类成员&#xff08;类成员的析构顺序就是类成员在类中…

作者头像 李华