---
title: （可选）安装UDF插件
description: "当业务场景明确需要使用UDF（User Defined Functions，用户自定义函数）功能时，才需要执行本章节的操作。插件安装操作仅需在管理节点完成。在Gluten上使能OmniOperator场景暂不支持加速UDF功能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_0213.html
sourcePath: /source/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_0213.html
indexId: 54f6c21c893c56682c11ddf793f57b63a58745711bea23410309ec1f8b294c8e78
---
# （可选）安装UDF插件

当业务场景明确需要使用UDF（User Defined Functions，用户自定义函数）功能时，才需要执行本章节的操作。插件安装操作仅需在管理节点完成。在Gluten上使能OmniOperator场景暂不支持加速UDF功能。

该插件目前仅支持HiveSimpleUDF类型（即基于Hive UDF框架编写的简单UDF）。HiveSimpleUDF是Hive中的一种用户定义函数类型，基于Hive的UDF框架实现，用于扩展Hive查询功能。由于Spark支持Hive的UDF接口，因此HiveSimpleUDF也可以在Spark环境中直接使用。

OmniOperator加速UDF，支持两种执行方式：行处理和批处理。可通过修改配置文件切换使用方式。

#### 前置条件

- 使用前请确认您的UDF是基于Hive UDF框架实现的简单UDF。
- 为了使用OmniOperator加速UDF，用户需提供相关JAR包和配置文件，包括以下文件。
- udf.zip：包含所有UDF的class文件。
- conf.zip：包含UDF所依赖的配置文件。
- udf.properties：用于配置OmniOperator加速UDF。
  以udfName1和udfName2为例，udf.properties内容格式如下。

  1 2 udfName1 com.huawei.udf.UdfName1 udfName2 com.huawei.udf.UdfName2


#### UDF插件行处理安装

1. 在管理节点创建“/opt/omni-operator/hive-udf”目录。
  1 mkdir /opt/omni-operator/hive-udf

2. 将上述相关的压缩文件udf.zip、conf.zip上传到管理节点的“/opt/omni-operator/hive-udf”目录。
  udf.zip、conf.zip等压缩包名称用户根据自己实际情况可进行自定义，本处仅提供示例。

3. 解压相关压缩文件。
  1 2 3 4 5 cd /opt/omni-operator/hive-udf unzip udf.zip rm -f udf.zip unzip conf.zip rm -f conf.zip

4. 在“/opt/omni-operator/conf/omni.conf”文件中更新配置。

  a. 打开配置文件。
    1 vi /opt/omni-operator/conf/omni.conf

  b. 按“i”进入编辑模式，新增关于UDF配置相关内容。
    1 2 3 4 5 6 7 # <----UDF properties----> #false表示使用表达式行处理，true表示使用表达式批处理 enableBatchExprEvaluate=false #UDF白名单文件路径 hiveUdfPropertyFilePath=./hive-udf/udf.properties #Hive UDF JAR所在目录路径 hiveUdfDir=./hive-udf/udf

    配置的路径必须以字符“.”开始，OmniOperator运行的时候会读取环境变量OMNI_HOME的值替换字符“.”。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 更新环境变量。

  a. 打开“~/.bashrc”文件。
    1 vi ~/.bashrc

  b. 按“i”进入编辑模式，追加LD_LIBRARY_PATH的内容更新环境变量。
    1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JAVA_HOME}/jre/lib/aarch64/server

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 使更新后环境变量生效。
    1 source ~/.bashrc


#### UDF插件批处理安装

在管理节点完成行处理安装的基础之上，执行以下步骤更新“/opt/omni-operator/conf/omni.conf”中的配置内容，以支持批处理操作。

1. 打开文件。
  1 vi /opt/omni-operator/conf/omni.conf

2. 按“i”进入编辑模式，找到以下语句并修改。
  1 enableBatchExprEvaluate=true

3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
