鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

(可选)安装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”文件中更新配置。
    1. 打开配置文件。
      1
      vi /opt/omni-operator/conf/omni.conf
      
    2. “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的值替换字符“.”。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  5. 更新环境变量。
    1. 打开“~/.bashrc”文件。
      1
      vi ~/.bashrc
      
    2. “i”进入编辑模式,追加LD_LIBRARY_PATH的内容更新环境变量。
      1
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JAVA_HOME}/jre/lib/aarch64/server
      
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 使更新后环境变量生效。
      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”保存并退出编辑。