---
title: 安装UDF插件
description: "- 本小节仅使用OmniOperator算子加速UDF（用户自定义函数，User Defined Functions）功能才需要进行操作，当前的OmniOperator算子加速UDF插件仅支持Simple UDF，用于执行基于Hive UDF框架编写的UDF函数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/230RC2/bds/kunpengbds_omniruntime_20_0043.html
sourcePath: /source/zh/kunpengboostkithistory/230RC2/bds/kunpengbds_omniruntime_20_0043.html
indexId: 0db42d16f31ed89ad0161543fd3e9dbd187653f5f2d6f169aa69d12b7fb7e30080
---
# 安装UDF插件

#### 前置条件

- 本小节仅使用OmniOperator算子加速UDF（用户自定义函数，User Defined Functions）功能才需要进行操作，当前的OmniOperator算子加速UDF插件仅支持Simple UDF，用于执行基于Hive UDF框架编写的UDF函数。
- OmniOperator算子加速UDF支持表达式行处理和批处理两种方式，两种方式可通过更改配置文件进行切换。


OmniOperator算子加速关于UDF的所需文件需用户提供相关JAR包和配置文件，形如udf.zip，conf.zip和udf.properties，其中udf.zip包含所有UDF的class文件，conf.zip包含UDF所依赖的配置文件，udf.properties是OmniOperator算子加速UDF配置文件，以udfName1和udfName2函数为例，udf.properties内容格式如下：


1. 将上述相关压缩文件上传到管理节点和计算节点的“/opt/omni-operator/hive-udf”目录。
  使用批量分发功能，选中所有节点“配置业务流”，选择“文件传输”，“添加”表1~表3的内容，单击“保存”。 表1 任务1编辑参数内容 参数 内容 任务名称 拷贝软件包udf.zip 任务描述 拷贝udf.zip软件包到全部节点 传输方向 从本地传至远端主机 本地路径 本地安装包所在的目录 远端路径 /opt/omni-operator/hive-udf 表2 任务2编辑参数内容 参数 内容 任务名称 拷贝conf.zip软件包 任务描述 拷贝conf.zip软件包到全部节点 传输方向 从本地传至远端主机 本地路径 本地安装包所在的目录 远端路径 /opt/omni-operator/hive-udf 表3 任务3编辑参数内容 参数 内容 任务名称 拷贝udf.properties文件 任务描述 拷贝udf.properties文件到全部节点 传输方向 从本地传至远端主机 本地路径 本地安装包所在的目录 远端路径 /opt/omni-operator/hive-udf

2. 解压udf.zip、conf.zip并配置环境变量。
  选择“命令执行”，“添加”表4~表5内容，单击“保存”。 表4 任务4编辑参数内容 参数 内容 任务名称 解压udf.zip、conf.zip软件包 任务描述 解压udf.zip、conf.zip软件包 运行目录 /opt/omni-operator/hive-udf 执行命令 unzip -o udf.zip;rm -f udf.zip;unzip -o conf.zip;rm -f conf.zip; udf.zip压缩包名称用户根据自己实际情况可进行自定义，本处仅提供示例。

**表5 任务5编辑参数内容**

| 参数 | 内容 |
| --- | --- |
| 任务名称 | 配置OmniOperator算子加速UDF环境变量 |
| 任务描述 | 在所有节点配置OmniOperator算子加速UDF环境变量 |
| 运行目录 | /opt/omni\-operator |
| 执行命令 | sed \-i '$a export LD\_LIBRARY\_PATH=${JAVA\_HOME}/jre/lib/aarch64/server/:$LD\_LIBRARY\_PATH' ~/.bashrc;source ~/.bashrc; |


3. 导出业务流，保存至本地。后续其他节点需要安装OmniOperator算子加速时，可通过导入业务流，快速安装。

  a. 单击右上角的“导出”，弹出“选择模板保存路径”窗口。
  b. 将模板命名为“OmniOperator算子加速UDF插件安装及配置WorkFlow”，单击“保存”。
4. 执行业务流，执行状态成功即可。


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

OmniOperator算子加速UDF插件行处理安装方式是在安装完OmniOperator算子加速UDF插件后，通过添加配置项使得UDF走到行处理流程。因此需要先完成OmniOperator算子加速UDF插件安装，具体请参见安装UDF插件。

1. 在所有节点的omni.conf中配置行处理参数内容。
  使用批量分发功能，选择“命令执行”，“添加”表6~表7内容，单击“保存”。 表6 任务1编辑参数内容 参数 内容 任务名称 创建/opt/omni-operator/conf目录 任务描述 创建/opt/omni-operator/conf目录，如果已有配置则删除原先配置 运行目录 /opt/omni-operator 执行命令 mkdir -p /opt/omni-operator/conf; sed -i '/enableBatchExprEvaluate/d' /opt/omni-operator/conf/omni.conf; sed -i '/hiveUdfPropertyFilePath/d' /opt/omni-operator/conf/omni.conf; sed -i '/hiveUdfDir/d' /opt/omni-operator/conf/omni.conf;

**表7 任务2编辑参数内容**

| 参数 | 内容 |
| --- | --- |
| 任务名称 | omni.conf中配置行处理参数内容 |
| 任务描述 | 在所有节点的omni.conf中配置行处理参数内容 |
| 运行目录 | /opt/omni\-operator/conf |
| 执行命令 | echo "enableBatchExprEvaluate=false" >> /opt/omni\-operator/conf/omni.conf; echo "hiveUdfPropertyFilePath=/opt/omni\-operator/hive\-udf/udf.properties" >> /opt/omni\-operator/conf/omni.conf; echo "hiveUdfDir=/opt/omni\-operator/hive\-udf/udf" >> /opt/omni\-operator/conf/omni.conf; |


2. 导出业务流，保存至本地。后续其他安装，即可通过导入业务流，快速安装。

  a. 单击右上角的“导出”。弹出“选择模板保存路径”窗口。
  b. 将模板命名为“OmniOperator算子加速UDF插件行处理方式安装及配置WorkFlow”，单击“保存”。
3. 执行业务流，执行状态成功即可。


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

在行处理安装的基础之上，在管理节点和所有计算节点执行以下步骤：

1. 在所有节点的omni.conf中配置批处理参数内容。
  使用批量分发功能，选择“命令执行”，“添加”表8内容，单击“保存”。 表8 任务1编辑参数内容 参数 内容 任务名称 omni.conf中配置批处理参数内容 任务描述 在所有节点的omni.conf中配置批处理参数内容 运行目录 /opt/omni-operator/conf 执行命令 sed -i '/enableBatchExprEvaluate/d' /opt/omni-operator/conf/omni.conf; echo "enableBatchExprEvaluate=true" >> /opt/omni-operator/conf/omni.conf; enableBatchExprEvaluate=true表示开启OmniOperator算子加速批处理，false表示关闭OmniOperator算子加速批处理（默认false）。

2. 导出业务流，保存至本地。后续其他安装，即可通过导入业务流，快速安装。

  a. 单击右上角的“导出”。
    弹出“选择模板保存路径”窗口。

  b. 将模板命名为“OmniOperator算子加速UDF插件批处理方式安装及配置WorkFlow”，单击“保存”。
3. 执行业务流，执行状态成功即可。
