【Flink实战】Flink -C实现类路径配置与实现UDF Jar

文章目录

    • [1. 描述](#1. 描述)
    • [2. 使用语法](#2. 使用语法)
    • [3. `-C` 适用的 Flink 运行模式](#3. -C 适用的 Flink 运行模式)
    • [4. USING JAR 不可用](#4. USING JAR 不可用)

1. 描述

Flink 中的 -C 选项用于将 URL 添加到作业的类加载器中。URL可以指向本地、HTTP 服务器或 HDFS 等资源的Jar文件。

注意:

  1. 此处的classpath的url必须是一个能够在client,JM和TM都被访问到的位置。
  2. 此位置从client端的提交到JM的分发到TM的访问的过程中,不会发生文件移动的动作。
  3. url支持的协议包括file,ftp,gopher,http,https,jar,mailto,netdoc,亦即java中URL类支持的协议类型。
  4. 注意:不能放在hdfs上。否则会报错:Bad syntax for classpath: hdfs://xxx。

2. 使用语法

shell 复制代码
flink run \
  -C http://home/user/flink-udf1.jar \
  -C http://home/user/flink-udf2.jar \
  -j job.jar

配置多个udf: 每个 -C 选项只能对应一个 JAR ,不能用逗号 , 分隔多个路径。

如下示例,

从Taskmanager日志可以看到成功加载https格式的jar包

url路径的结尾可以不以.jar结尾

运行模式 是否支持 -C
Standalone(独立模式) ✅ 支持
YARN Session ✅ 支持
YARN Per-job ✅ 支持
Kubernetes ✅ 支持
Local(本地模式) ✅ 支持

4. USING JAR 不可用

使用Flink Sql加载udf

sql 复制代码
CREATE FUNCTION my_udf AS 'com.example.MyUDF' USING JAR 'hdfs://namenode:9000/flink-udf.jar';

报错:直接不可用。

log 复制代码
org.apache.flink.api.common.InvalidProgramException: Table program cannot be compiled. This is a bug. Please file an issue. at
相关推荐
Jonathan Star1 小时前
嵌套 Git 仓库(Submodule/子模块)
大数据·git·elasticsearch
TDengine (老段)2 小时前
从“数据堆场”到“智能底座”:TDengine IDMP如何统一数据语言
大数据·数据库·物联网·时序数据库·tdengine
liuyunshengsir2 小时前
让 Elasticsearch Delete By Query 请求立即生效
大数据·elasticsearch·jenkins
武子康3 小时前
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
大数据·后端·nosql
ZEERO~3 小时前
夏普比率和最大回撤公式推导及代码实现
大数据·人工智能·机器学习·金融
培培说证3 小时前
中专生做电商客服,能转电商运营吗?需要学习什么?
大数据·职场和发展
码界奇点4 小时前
时序数据库选型指南从大数据视角看IoTDB的核心优势
大数据·时序数据库·iotdb
数据超市4 小时前
快速CAD转到PPT的方法,带教程
大数据·python·科技·信息可视化·数据挖掘
TDengine (老段)4 小时前
从细胞工厂到智能制造:Extracellular 用 TDengine 打通数据生命线
java·大数据·数据库·科技·制造·时序数据库·tdengine
PONY LEE5 小时前
Flink 任务调优案例分析
大数据·flink