MAPREDUCE服务 MRS-创建Hive用户自定义函数:如何使用

时间:2024-09-25 14:06:44

如何使用

  1. 在客户端安装节点,把以上程序打包成AddDoublesUDF.jar,并上传到HDFS指定目录下(例如“/user/hive_examples_jars”)。

    创建函数的用户与使用函数的用户都需要具有该文件的可读权限。

    示例语句:

    hdfs dfs -put ./hive_examples_jars /user/hive_examples_jars

    hdfs dfs -chmod 777 /user/hive_examples_jars

  2. 判断集群的认证模式。

    • 安全模式,需要使用一个具有Hive管理权限的用户登录beeline客户端,执行如下命令:

      kinit Hive业务用户

      beeline

      set role admin;

    • 普通模式,执行如下命令:

      beeline -n Hive业务用户

  3. 在Hive Server中定义该函数,以下语句用于创建永久函数:

    CREATE FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar';

    其中addDoubles是该函数的别名,用于SELECT查询中使用;xxx通常为程序开发的组织名称。

    以下语句用于创建临时函数:

    CREATE TEMPORARY FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar';

    • addDoubles是该函数的别名,用于SELECT查询中使用。
    • 关键字TEMPORARY说明该函数只在当前这个Hive Server的会话过程中定义使用。

  4. 在Hive Server中使用该函数,执行SQL语句:

    SELECT addDoubles(1,2,3);

    若重新连接客户端再使用函数出现[Error 10011]的错误,可执行reload function;命令后再使用该函数。

  5. 在Hive Server中删除该函数,执行SQL语句:

    DROP FUNCTION addDoubles;

support.huaweicloud.com/cmpntguide-mrs/mrs_01_0963.html