仅使用OmniOperator算子加速UDF功能的情况下才需安装UDF插件,且仅支持Simple UDF。安装UDF插件仅在管理节点操作。OmniOperator算子加速UDF支持表达式行处理和批处理两种方式,两种方式可根据更改配置文件进行切换。
前置条件
本小节仅使用OmniOperator算子加速UDF(用户自定义函数,User Defined Functions)功能才需要进行操作,当前的OmniOperator算子加速UDF插件仅支持HiveSimpleUDF,用于执行基于Hive UDF框架编写的UDF函数。HiveSimpleUDF是Hive中的用户定义函数(UDF)类型之一,它是一种简单的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
|
UDF插件行处理安装
- 在管理节点和计算节点创建“/opt/omni-operator/hive-udf”目录。
| mkdir /opt/omni-operator/hive-udf
|
- 将上述相关的压缩文件udf.zip、conf.zip上传到管理节点和计算节点的“/opt/omni-operator/hive-udf”目录。
- 执行以下命令解压相关压缩文件。
| cd /opt/omni-operator/hive-udf
unzip udf.zip
rm -f udf.zip
unzip conf.zip
rm -f conf.zip
|
- 在“/opt/omni-operator/conf/omni.conf”文件中更新配置内容。
- 打开“/opt/omni-operator/conf/omni.conf”文件。
| vi /opt/omni-operator/conf/omni.conf
|
- 按“i”进入编辑模式,新增关于UDF配置相关内容。
| # <----UDF properties---->
#false表示使用表达式行处理,true表示使用表达式批处理
enableBatchExprEvaluate=false
#UDF白名单文件路径
hiveUdfPropertyFilePath=./hive-udf/udf.properties
#Hive UDF JAR所在目录路径
hiveUdfDir=./hive-udf/udf
|
配置的路径必须以字符“.”开始,OmniOperator运行的时候会读取环境变量OMNI_HOME的值替换字符“.”。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 通过vi打开“~/.bashrc”文件,在该文件中追加LD_LIBRARY_PATH的内容更新环境变量。
- 打开“~/.bashrc”文件。
- 按“i”进入编辑模式,追加LD_LIBRARY_PATH的内容更新环境变量。
| export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JAVA_HOME}/jre/lib/aarch64/server
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令更新环境变量。
上述udf.zip、conf.zip等压缩包名称用户根据自己实际情况可进行自定义,本处仅提供示例。
UDF插件批处理安装
在管理节点行处理安装的基础之上,执行以下步骤更新omni.conf中的配置内容。
- 打开“/opt/omni-operator/conf/omni.conf”文件。
| vi /opt/omni-operator/conf/omni.conf
|
- 按“i”进入编辑模式,更新关于UDF行/批处理配置相关内容。
| enableBatchExprEvaluate=true
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。