问题标签 [apache-sentry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark-sql - 使用直线连接到 spark thift 服务器时无法加载哨兵配置
all.我已经尝试使用beeline连接到Spark Thrift Server,并且数据在hive上。所以为了安全起见,当他们使用spark thrift server操作hive上的数据时,我想使用sentry为不同的用户做autherization。 Spark thrift Server 可以,但是哨兵不起作用,因为任何用户都可以使用“select”来查看任何表。以下是日志的一部分:
配置如下:
蜂巢站点.xml:
所以我想知道为什么哨兵不起作用?在日志中我看到“18/05/31 17:59:05 WARN conf.HiveConf:名称为 hive.sentry.conf.url 的 HiveConf 不存在”,但它存在于 hive-site.xml 并且 sentry-site.xml 位于正确的位置。任何人都可以给我一些建议或 Spark Thrift Server 与哨兵集成或 Hive Server2 与哨兵集成的部署文档吗?提前致谢。
hive - 在指定数据库之前,已应用 Sentry 授权,但 ACL 不工作
我在 Sentry 中配置了具有以下权限的管理员角色:
- 服务器=server1->动作=全部
在 Hive 中一切正常:我们可以创建对象、插入、选择......
但 HDFS 文件夹没有正确的 ACL:
但是,如果我使用下一个配置在 Sentry 中设置数据库或表:
- server=server1 db=default table=testgrant action=ALL
然后我可以看到正确的 ACL:
这是一个问题,因为我想在 Hive 中创建表时自动获得 ACL 访问权限,而无需在 Sentry 中定义特定权限(我在服务器中有 ALL)
我如何配置哨兵来做到这一点?
谢谢!
apache-spark - 从 spark 授予所有 uri
hiveContext.sql("grant all on uri 'file:/path/to/file' to role 'public'");
使用 Spark 1.6.2运行
时出现以下错误: org.apache.hadoop.hive.ql.parse.SemanticException: Hive authorization does not support the URI or SERVER objects
.
有什么方法可以执行这个查询表单 spark?我应该在查询之前向当前用户添加其他权限吗?
Grant all on database
完美运行。
hive - Impala [目录] 和 Hive [Metastore/Sentry] 不同步
我们使用 Cloudera (CDH 5.7.5) 和 Hue [3.9.0]。对于管理员用户,一些 hive 表 (60%) 可以通过 impala 访问。其他配置单元表不可访问。对于非管理员用户,没有可通过 Impala 访问的数据库。再一次,一些数据库可以通过 hive 访问。
是因为 Impala 目录不与 hive 元存储同步吗?当我尝试运行无效元数据(对于所有数据库)时,我收到了read operation timeout error
消息。我尝试为某些表运行无效的元数据,但没有解决问题,没有影响。我需要检查什么。,
仅供参考,每次通过 Impala 运行查询时都会出现此错误。但不适用于蜂巢。
FYI2,无效元数据运行良好。对于管理员用户,所有数据库和表都可以通过 hive 和 impala 访问。但是对于非管理员用户,授权数据库只能通过 hive 访问(impala no)
这是色调日志的一部分:
hive - Hive 和 Impala 为安装了 Sentry 的用户显示不同的角色
我正在运行 Cloudera 5.15,并在集群上启用了 Kerboros。安装哨兵以配置用户对各种表/数据库...等的访问。
对于 Hive,一切都已安装并且工作正常,但对于 Impala 则不然。
我正在使用 Hue Web UI 来发出 hive/impala 查询。(虽然我使用直线和 impala-shell 得到了相同的结果)
从色相/蜂巢:
显示当前角色;
返回——>“教授角色”
从色相/黑斑羚
显示当前角色;
返回 --> 没有结果
当我从 hive 和 impala 查询编辑器发出“select current_user()”时,我得到了不同的结果。
从蜂巢“选择 current_user()”返回“蜂巢”
从 impala "select current_user()" 返回 "professor1"
我在想也许这是罪魁祸首,但我不知道如何解决?也许我在某个地方错过了 impala 中的配置设置?
在 hive 中一切正常 - 登录时不同的用户会根据他们分配的角色向我显示不同的数据库和表。登录到 Impala 的用户看不到任何东西。
任何帮助是极大的赞赏。
谢谢
hive - Apache sentry hive 授予插入权限,但它不起作用
插入到 limifang_oracle_store002(id,name) values(1,'lisi');
异常: Error: Error while compile statement: FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.InvalidTableException: Table not found limifang_oracle_store002 (state=42000,code=40000) 0: jdbc:hive2://192.168.2.16 :2181,192.168.2.1> 插入到 liminfang_oracle_store002(id,name) values(1,'lisi'); 警告:Hive-on-MR 在 Hive 2 中已弃用,并且可能在未来的版本中不可用。考虑使用不同的执行引擎(即 spark、tez)或使用 Hive 1.X 版本。错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 返回代码 1。权限被拒绝:user=kaif1, access=EXECUTE, inode="/tmp/hadoop-yarn/staging/kaif1/.staging": root:supergroup:drwx------
权限信息如下: show grant role kaif1;
|数据库| 表| 隔断| 专栏 | 校长姓名 | 主体类型 | 特权 | 授予选项 | 授予时间 | 设保人 |
| ziy_db_109 | liminfang_oracle_store002 | kaif1 | 角色 | 删除 | 假 | 1022296989000
| ziy_db_109 | liminfang_oracle_store002 | kaif1 | 角色 | 插入 | 假 | 1022295356000 |
hive - 从 UDF 查找 Hbase Tbl(直线、Hbase、委托令牌)
我需要编写自定义 UDF 以从 Hbase Table 查找数据。
注意:我已经使用 HIVE 进行了单元测试。它似乎正在工作。
但是当我使用相同的 UDF 直线时,它失败了。默认情况下,Cloudera 限制模拟,只允许 hive 用户在 Beeline 中运行查询。在 Job 启动时,YarnChild 正在设置以下委托令牌。
我想添加令牌(种类:HBASE_AUTH_TOKEN)来处理 Hbase。
我研究并发现了 HbaseStorageHandler 如何为 Hbase 使用委托令牌(即 HBASE_AUTH_TOKEN)。所以我使用了相同的功能集,但它也不起作用。
来自 HbasestorageHandler 的函数(获取 Job 的令牌):
在 UDF 的 configure() 中调用 addHBaseDelegationToken() 之后。我收到以下异常。我不确定如何让 hvie 用户与 Hbase 交谈,因为 hive.keytab 由 Cloudera 处理并受到保护。
任何输入都可能会有所帮助。谢谢 !
异常堆栈跟踪:
2018-10-11 04:48:07,625 WARN [main] org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hive (auth:SIMPLE) 原因:javax.security.sasl.SaslException: GSS 启动失败 [由 GSSException 引起:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)] 2018-10-11 04:48:07,627 WARN [main] org.apache.hadoop.hbase.ipc.RpcClientImpl:连接到服务器时遇到异常:javax.security.sasl.SaslException:GSS 启动失败 [由 GSSException 引起:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)] 2018-10-11 04:48:07,628 FATAL [main] org.apache .hadoop.hbase.ipc.RpcClientImpl:SASL 身份验证失败。最可能的原因是凭据丢失或无效。考虑“kinit”。javax.security.sasl.SaslException:
已尝试以下选项:
apache - 基于 Apache Sentry 中的列值的访问
我知道我们在 Apache Sentry 中具有列级访问权限。但是是否可以提供基于 Column 值的 Access 而不仅仅是 column ?还是在这里创建视图是更好且唯一的选择?
java - 如何使用 Apache Sentry Java Client API & 是否有用户指南文档?
我正在尝试使用其Java Client API在我们的 CDH 集群中操作 Sentry 。由于我没有找到任何相关文档(其官方网站上的有用信息很少),我只是猜测和写作。现在出现了一些异常,我无法解决。所以我想知道是否有关于如何使用 Sentry 的 Java API 的文档。
下面是我写的代码:
sentry-site.xml
复制自/etc/sentry/sentry-site.xml
,其内容是这样的:
异常消息:
我想这与kerberos有关,但我无法弄清楚。任何帮助表示赞赏。
java - Sentry 无法同步 HDFS 文件和 Hive 表之间的 ACL
Sentry 无法将 Hive 表访问控制列表的全图快照发送到 HDFS,从而导致 HDFS ACL 和 Hive 表 ACL 不同步。
我正在运行 Cloudera CDH 5.14.2,它包含 Sentry 1.5.1 和 Hadoop 2.6.0。我已经启用了与 HDFS 的 Sentry 和 ACL 同步。
最近为了刷新HDFS log4j中的一些配置重启集群,但是系统恢复后发现Hive表和HDFS文件之间的ACL不同步。
然后我们回滚 log4j 配置并再次重新启动集群,但是 Hive 表和 HDFS 文件之间的 acls 仍然不同步。
经过一番排查,根据 sentry-2183,我们发现可能是 Hive 中的大量分区和表(实际上我们在 Hive 中有数百万个表和分区)造成的。所以我们在metastore服务器sentry.hdfs.service.client.server.rpc-connection-timeout
的hive-site.xml
文件里把配置改成1800000,但是还是不行。
我们注意到 Sentry 和 HDFS 日志中有警告和错误消息。在 Sentry 日志中,它显示有关以下内容的警告:
“警告 org.apache.thrift.transport.TIOStreamTransport:关闭输出流时出错。java.net.SocketException:套接字关闭”
在 HDFS 中,它显示错误:
“ERROR orgapache.sentry.core.common.transport.RetryClientInvocationHandler: failed to execute getAllUpdateFrom java.lang.reflect.InvocationTargetException”,这是由“org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutExcpetion: Read time”引起的出去”
任何想法 ?