Flink SQL Client注册JAVA UDF完整流程
概述
听大佬说[1]里面有flink sql client注册udf的方法
去看了一眼,全是文字,闹心,索性琢磨了一下,记录下来.
UDF的完整maven工程
https://github.com/appleyuchi/Flink_SQL_Client_UDF
完整操作步骤
①mvn clean package
或者直接点击intellij右侧的package按钮来进行编译
②编译得到的jar放入到集群的下面,最终路径如下(不一定非要下面这个路径,也可以是其他你自己指定的路径):
$FLINK_HOME/lib/table_api-1.0-SNAPSHOT.jar
③下面这步有说法是zeppelin才需要,sql-client不需要
$FLINK_HOME/conf/flink-conf.yaml中末尾加入这么一句
flink.execution.jars: /home/appleyuchi/bigdata/flink-1.12/lib/table_api-1.0-SNAPSHOT.jar
上面的jar只要放到你启动flink sql client 的那个节点中的$FLINK_HOME/lib下面即可,不需要同步到其他节点
不要问如果我有多个udf的jar怎么办,
凉拌,
自己去把所有udf整合到一个jar中来.
④启动Flink SQL Client
输入
create temporary function hash_compute as 'Hashstring';
如果你是先启动Flink SQL Client,后把jar拷贝到②中,那么必须重启Flink sql client,否则会识别不到该jar。
⑤定义source
CREATE TABLE orders (order_uid BIGINT,product_name String,price DECIMAL(32, 2),order_time TIMESTAMP(3)
) WITH ('connector' = 'datagen'
);SELECT * FROM orders;
不用担心输入的数据是多少,上面的datagen随机给你生成.
⑥调用UDF
select hash_compute(product_name) from orders;
附录
操作过程截图
实验效果
可能遇到的报错
[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassNotFoundException: Hashstring
这是因为,这个jar是你启动flink集群后才拷贝过去的.
Flink SQL Client加载包含udf的table_api-1.0-SNAPSHOT.jar只有两种办法:
①table_api-1.0-SNAPSHOT.jar拷贝到$FLINK_HOME/lib下面后重启Flink集群
②$FLINK_HOME/bin/sql-client.sh embedded -j $FLINK_HOME/lib/table_api-1.0-SNAPSHOT.jar
Reference:
[1]CREATE Statements
[2]UDF
Flink SQL Client注册JAVA UDF完整流程相关推荐
- Flink SQL Client注册SCALA UDF完整流程
UDF的完整maven工程與SQL https://github.com/appleyuchi/Flink_SQL_Client_UDF 完整操作步骤 ①mvn scala:compile packa ...
- Flink SQL Client注册Python UDF完整流程
概述 本文是对[1]的复现 支持的版本是 组件 版本 备注 Flink 1.12.0 apache版本 apache-flink 1.12.0 pip安装 python 3.6.10 anaconda ...
- Flink SQL Client方言切换与datagen->Hive(DDL形式+streaming形式)
概述 本文是对[1]的完整复现,补充了[1]中缺失的大量细节. 切换方言 切换目标 Flink SQL Client命令 切换为hive SET table.sql-dialect=hive; 切换为 ...
- Flink SQL Client实现CDC实验
概述 本文主要是對[7]中內容的復現 环境 组件 版本 Flink(HA) 1.12 Zookeeper 3.6.0 flink-sql-connector-mysql-cdc 1.1.1 Mysql ...
- Flink SQL Client讀取csv中的數據(轉載+總結)
根據官方文檔[2] Flink SQL啓動方式 啓動命令 (1)starting an embedded standalone process $FLINK_HOME/bin/sql-client.s ...
- Flink SQL Client CLI 使用入门
参照:https://blog.csdn.net/boling_cavalry/article/details/105964425 一.SQL Client Flink 的 Table & S ...
- Flink SQL Client进行Kafka事实表与Hbase维度表Join(纯DDL/SQL方式)
概述: 對參考鏈接[1]進行DDL上的復現. 一些基本的業務常识 來源載體 數據特點 維表 Mysql/Csv/Hbase 很少變化 事實表 Kafka 不停變化 开发环境与准备工作 组件 版本 ...
- Flink SQL Client读Kafka+流计算(DDL方式+代碼嵌入DDL/SQL方式)
#################################################################################################### ...
- flink sql client读取hive时卡住
问题复现如下: 查看$FLINK_HOME/log/flink-appleyuchi-sql-client-Desktop.log 2020-12-23 11:48:56,811 INFO org. ...
最新文章
- JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码)
- oracle 从别的数据库获取数据 ,访问其他数据库
- mybatis框架执行原理简单实现
- php 立即执行函数,关于javascrip的立即执行函数的解析
- 基于React跑一个简易版九宫格抽奖
- ZooKeeper 初体验
- lora三层服务器协议,LoRa以及LoRa包含的几种协议
- 计算机无法启动无法修复工具栏,excel打不开怎么办?使用excel修复工具教程
- 15款替代微软产品的开源软件
- python实现一元二次方程求解_Python实现求解一元二次方程的方法示例
- Python3图片中竖排文字
- 荣耀 MagicBook V 14 2022款评测
- pdf太大了怎么缩小?怎么能缩小pdf文件大小?
- JMockit didn't get initialized
- 互联网思维——社会化思维
- 《深入浅出Docker》学习笔记
- 最新智慧工厂可视化管理系统软件
- ctfshow 吃瓜杯八月赛 Misc WriteUp
- shift切换大小写
- tp5导出excel表格