配置ranger后hive注册永久UDF
背景:由于有些场景在启用Ranger情况下,客户在分配权限时候对高权限有特别要求,尽可能给用户设置低权限,无法在ranger中设置用户为 is Role admin权限(hive管理员权限)
操作流程:
1、在Ranger中配置用户具有udf创建查看权限
以rangeradmin用户登录Ranger——>点击hive
添加一个新的策略
创建策略(注意步骤2可以选择指定库,步骤3中默认是table要选成udf,值可以定义为*)
(步骤4选择添加的用户,步骤5中至少要给create权限,drop权限为删除udf函数权限可选是否给)
2、在客户端安装节点,把UDF函数jar包打包(如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
3、在Hive Server中定义该函数,以下语句用于创建永久函数:(其中addDoubles是该函数的别名,用于SELECT查询中使用)
CREATE FUNCTION addDoubles AS 'com.huawei.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar';
以下语句用于创建临时函数:
CREATE TEMPORARY FUNCTION addDoubles AS 'com.huawei.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);
5、在Hive Server中删除该函数,执行SQL语句:
DROP FUNCTION addDoubles;