---
title: 安装UDF插件
description: "OmniOperator算子加速 UDF功能，即用于执行基于Hive UDF框架编写的UDF函数，当前OmniOperator算子加速 UDF插件仅支持Simple UDF。若您需要使用该功能则需要进行安装UDF插件和表达式处理方式的配置操作。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0043.html
sourcePath: /source/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0043.html
indexId: 569b902562ed71d03638366370df29ea1149fa06515fbeac03c658f4cfb2919e78
---
# 安装UDF插件

OmniOperator算子加速 UDF功能，即用于执行基于Hive UDF框架编写的UDF函数，当前OmniOperator算子加速 UDF插件仅支持Simple 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内容格式如下。

```
udfName1 com.huawei.udf.UdfName1
udfName2 com.huawei.udf.UdfName2
```

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. 执行业务流，执行状态成功即可。
