友情链接
常见的UDF部署方式有以下三种:
本篇教程将详细为您介绍前两种方式,同时也为您准备了相关的操作视频示例辅助您后续的使用。如果您觉得有用的话欢迎多多点赞,如果您有其他需要了解的内容也欢迎多多留言,我们会持续丰富产品使用相关的教程。
将开发好自定义UDF函数的项目打包成jar包,注意:jar 包中的自定义UDF 类名,不能和现有UDF 类,在包名+类名上,完全相同。
此方式的核心逻辑是把UDF jar包放到image的/usr/lib/inceptor/下面,重新制作image。具体步骤如下:
以更换inceptor中的inceptor_2.10-1.1.0-transwarp-6.1.0.jar为例:
1. 进入inceptor image
docker run -it <inceptor_image_id> bash
2. 打开另一个terminal
3. 替换container中的jar包
docker cp <jar包名称> <container_id>:/usr/lib/inceptor/ <jar包名称>
4. commit修改记录
docker commit <container_id> REPOSITORY:TAG
5. 打开manager管理页面重新启动inceptor服务
6.重启完成后即可查看quark server的pod下/usr/lib/inceptor/是否有新增的jar包
1. 查看已存在jar包
LIST JAR;
2. 添加jar包
ADD JAR[S] <local_path>;
// Local_path是jar包所在Inceptor server节点的路径。
示例:
3. 创建临时UDF
CREATE TEMPORARY FUNCTION [<db_name>.]<function_name> AS <class_name>;
临时UDF在Inceptor重启后失效。如果需要更新临时UDF,需要重启Inceptor重新创建该临时UDF。
示例:
4. 验证临时UDF
SELECT [<db_name>.]<function_name>() FROM SYSTEM.DUAL;
5. 删除临时UDF
DROP TEMPORARY FUNCTION <if exists> <function_name>;
建议优先选取前两种方式,此方式虽然可行但不推荐,故仅介绍基础命令,暂无视频提供。
1. 查看已存在jar包
LIST JAR;
2. 添加jar包
ADD JAR[S] <local_or_hdfs_path>;
//Local_path是Inceptor server节点的路径。保证hive用户对jar所在的目录有读权限。
3. 创建永久UDF
CREATE PERMANENT FUNCTION [<db_name>.]<function_name> AS <class_name>;
如果Inceptor不在local mode,那么资源的地址也必须是非本地URI,比如HDFS地址。
4. 验证永久UDF
SELECT [<db_name>.]<function_name>() FROM SYSTEM.DUAL;
5. 删除永久UDF
DROP PERMANENT FUNCTION <if exists> <function_name>;