Ambari Hive 创建函数无权限

櫰木2年前技术文章1214

1、创建udf函数

参考文档:https://blog.csdn.net/helloxiaozhe/article/details/102498567

如果已经编写好,请使用自己的。如果没有请参考以上链接进行udf函数编写

2、创建函数遇到的问题

由于集群开启了kerberos,但是没有开启ranger,导致用户没有权限创建函数。出现以下问题

3、解决方案

修改或添加以下配置

hdp配置文件目录:/usr/hdp/current/hive-server2/conf/hiveserver2-site.xml

  
    <property>
      <name>hive.security.authenticator.manager</name>
      <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
    </property>
  
    <property>
      <name>hive.security.authorization.enabled</name>
      <value>true</value>
    </property>
  
    <property>
      <name>hive.security.authorization.manager</name>
      <value>org.apache.hadoop.hive.ql.security.authorization.plugin.fallback.FallbackHiveAuthorizerFactory</value>
    </property>

3.png

hdp配置文件目录:/usr/hdp/current/hive-server2/conf/hive-site.xml

    <property>
      <name>hive.users.in.admin.role</name>
      <value>hive</value>
    </property>
    <property>
      <name>hive.security.authorization.createtable.owner.grants</name>
      <value>ALL</value>
    </property>
    <property>
      <name>hive.security.authorization.task.factory</name>
      <value>org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl</value>
    </property>

4.png

4、验证

由于配置文件中写的是hive用户为admin。

使用kinit 认证hive keytab。拥有所有权限

kinit  hive/hdp01@HADOOP.COM  -kt /etc/security/keytabs/hive.service.keytab

5.png

CREATE FUNCTION manghello AS 'org.dtstack.HelloUDF' USING JAR 'hdfs://ha/tmp/udf/helloudf-1.0-SNAPSHOT.jar';

6.png

使用udf函数

 select manghello('zhang','sancc');

7.png

使用nn用户认证。进行创建函数就会报错

kinit -kt nn.service.keytab  nn/hdp01@HADOOP.COM


相关文章

Flink关于HiveCatalog

HiveCatalogHiveCatalog 有两个用途:作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口。配置在flink-sql-connector-hive-1...

Trino部署

安装前准备1.1. 创建用户和用户组groupadd trinouseradd -g hadoop trino1.2. 配置环境变量1.2.1. 配置系统环境变量/etc/profileexport...

PG的pathman分区表工具

一、概述在PG<=10的版本中,都是通过表继承的方式进行分区的,必须使用CHECK CONSTRAINT将每个分区创建为子表 。PostgreSQL 10提供了本机分区,它与经典方法没有什么不同...

kafka部署建议

1       集群部署规范1.1      Cpu规格与挂盘数量的关系 &nb...

 MySQL运维实战(1.2)安装部署:使用二进制安装部署

MySQL运维实战(1.2)安装部署:使用二进制安装部署

一般在生产环境,我们会使用二进制安装的方式安装MySQL。使用二进制安装,在处理单机多实例、升级MySQL等场景下更加方便。如果有特殊的需求(比如要打一些patch),我们还可以自己编译二进制。1、下...

Apache hive 对接达梦数据库FQA

Apache hive 对接达梦数据库FQA

对接中遇到的问题问题1解决办法定义dm_svc.confIME_ZONE=(480) LANGUAGE=(cn) HIVE=(172.16.104.165:5236) [HIVE] KEYWO...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。