我们有一个 Presto(版本 - 323-E.8)连接器,其中启用了 Ranger 的 CDP Hive3 集群,我可以在现有 Hive ORC 格式化表上运行选择查询,但无法在 Hive 元存储上创建或删除任何视图。它引发权限问题错误,我的管理员已从 Ranger & AD 向用户授予所有权限,并且我能够在服务器上使用同一用户从直线执行所有操作。蜂巢属性:
*connector.name=hive-hadoop2
hive.metastore.uri=thrift://XXXXX
hive.views-execution.enabled=true
hive.metastore.authentication.type=KERBEROS
hive.metastore.service.principal=hive/_HOST@XXXX
hive.metastore.client.principal=XXXXX
hive.metastore.client.keytab=/abc/xxxx.keytab
hive.hdfs.wire-encryption.enabled=false
hive.metastore.thrift.impersonation.enabled=true
hive.config.resources=/etc/cdp/core-site.xml,/etc/cdp/hdfs-site.xml,/etc/cdp/hive-site.xml
hive.hdfs.authentication.type=KERBEROS
hive.hdfs.presto.principal=hdfs/_HOST@XXXXX
hive.hdfs.presto.principal=XXXX
hive.hdfs.presto.keytab=/abc/xxxx.keytab
hive.security=ranger
ranger.policy-rest-url=https://XXXXX:6182
ranger.service-name=cm_hive
ranger.authentication-type=KERBEROS
ranger.kerberos-principal=XXXX
ranger.kerberos-keytab=/abc/xxxx.keytab
ranger.plugin-policy-ssl-config-file=/abc/ssl-client.xml*
错误:io.prestosql.spi.PrestoException:用户不允许操作类型 CREATE_VIEW:io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1036) 处 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.java:1036) .metastore.thrift.BridgingHiveMetastore.createTable(BridgingHiveMetastore.java:184) 在 io.prestosql.plugin.hive.metastore.cache.CachingHiveMetastore.createTable(CachingHiveMetastore.java:524) 在 io.prestosql.plugin.hive.metastore.cache .CachingHiveMetastore.createTable(CachingHiveMetastore.java:524) at io.prestosql.plugin.hive.metastore.SemiTransactionalHiveMetastore$CreateTableOperation.run(SemiTransactionalHiveMetastore.java:2692) at io.prestosql.plugin.hive.metastore.SemiTransactionalHiveMetastore$Committer.executeAddTableOperations (SemiTransactionalHiveMetastore.java:1668) 在 io.prestosql。plugin.hive.metastore.SemiTransactionalHiveMetastore$Committer.access$1000(SemiTransactionalHiveMetastore.java:1282) at io.prestosql.plugin.hive.metastore.SemiTransactionalHiveMetastore.commitShared(SemiTransactionalHiveMetastore.java:1225) at io.prestosql.plugin.hive.metastore .SemiTransactionalHiveMetastore.commit(SemiTransactionalHiveMetastore.java:991) 在 io.prestosql.plugin.hive.HiveMetadata.commit(HiveMetadata.java:2408) 在 io.prestosql.plugin.hive.HiveConnector.commit(HiveConnector.java:202) 在io.prestosql.transaction.InMemoryTransactionManager$TransactionMetadata$ConnectorTransactionMetadata.commit(InMemoryTransactionManager.java:595) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 com.google.common.util.concurrent。 TrustedListenableFutureTask$TrustedFutureInterruptibleTask。在 com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) 的 com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57) 运行Interruptibly(TrustedListenableFutureTask.java:125)在 io.airlift.concurrent.BoundedExecutor.drainQueue(BoundedExecutor.java:78) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :624) 在 java.lang.Thread.run(Thread.java:748) 引起:org.apache.hadoop.hive.metastore.api.MetaException:操作类型 CREATE_VIEW 不允许用户:org.apache.hadoop 中的 XXXXX .hive.metastore.api.ThriftHiveMetastore$create_table_result$create_table_resultStandardScheme.read(ThriftHiveMetastore.java:52658) 在 org.apache.hadoop.hive。metastore.api.ThriftHiveMetastore$create_table_result$create_table_resultStandardScheme.read(ThriftHiveMetastore.java:52626) 在 org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_result.read(ThriftHiveMetastore.java:52552) 在 org.apache.thrift。 TServiceClient.receiveBase(TServiceClient.java:86) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_create_table(ThriftHiveMetastore.java:1490) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$ Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 的 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的 Client.create_table(ThriftHiveMetastore.java:1477) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) 在 com.sun.proxy.$ io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51( ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java :130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个prestosql.plugin.base.util.LoggingInvocationHandler.handleInvocation(LoggingInvocationHandler.java:60) 在 com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) 在 com.sun.proxy.$Proxy370.create_table(Unknown来源)在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 的 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) ) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) .prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个prestosql.plugin.base.util.LoggingInvocationHandler.handleInvocation(LoggingInvocationHandler.java:60) 在 com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) 在 com.sun.proxy.$Proxy370.create_table(Unknown来源)在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 的 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) ) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) .prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个LoggingInvocationHandler.handleInvocation(LoggingInvocationHandler.java:60) 在 com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) 在 com.sun.proxy.$Proxy370.create_table(Unknown Source) 在 io.prestosql.plugin .hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin。 hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore .thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个LoggingInvocationHandler.handleInvocation(LoggingInvocationHandler.java:60) 在 com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) 在 com.sun.proxy.$Proxy370.create_table(Unknown Source) 在 io.prestosql.plugin .hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin。 hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore .thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个handleInvocation(LoggingInvocationHandler.java:60) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) at com.sun.proxy.$Proxy370.create_table(Unknown Source) at io.prestosql.plugin.hive .metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive。 metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift .ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个handleInvocation(LoggingInvocationHandler.java:60) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86) at com.sun.proxy.$Proxy370.create_table(Unknown Source) at io.prestosql.plugin.hive .metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive。 metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift .ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个在 com.sun.proxy.$Proxy370.create_table(Unknown Source) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql 调用(AbstractInvocationHandler.java:86) .plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io .prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个在 com.sun.proxy.$Proxy370.create_table(Unknown Source) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastoreClient.createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql 调用(AbstractInvocationHandler.java:86) .plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda$wrap$0(ThriftMetastoreApiStats.java:42) 在 io .prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda $wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore. java:1022) ... 19 更多createTable(ThriftHiveMetastoreClient.java:161) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.lambda$createTable$51(ThriftHiveMetastore.java:1024) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftMetastoreApiStats.lambda $wrap$0(ThriftMetastoreApiStats.java:42) 在 io.prestosql.plugin.hive.util.RetryDriver.run(RetryDriver.java:130) 在 io.prestosql.plugin.hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore. java:1022) ... 19 更多hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个hive.metastore.thrift.ThriftHiveMetastore.createTable(ThriftHiveMetastore.java:1022) ... 还有 19 个