首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Hive和Impala时表文件夹权限问题

使用Hive和Impala时表文件夹权限问题
EN

Stack Overflow用户
提问于 2015-08-28 01:45:04
回答 1查看 3.8K关注 0票数 0

我们正在使用最新版本的蜂巢以及黑斑羚。Impala正在使用LDAP进行身份验证,并通过Sentry进行授权。到目前为止,蜂箱访问尚未通过Sentry授权。我们正在从Impala创建表,而/user/hive/仓库通过"hive“组拥有组级所有权,因此文件夹权限为impala:hive。

代码语言:javascript
运行
AI代码解释
复制
drwxrwx--T   - impala hive          0 2015-08-24 21:16 /user/hive/warehouse/test1.db
drwxrwx--T   - impala   hive          0 2015-08-11 17:12 /user/hive/warehouse/test1.db/events_test_venus

可以看到,上面的文件夹是由Impala拥有的,而group是Hive,并且是可以组写的。组“hive”还有一个名为“hive”的用户:

代码语言:javascript
运行
AI代码解释
复制
[root@server ~]# groups hive
hive : hive impala data

[root@server ~]# grep hive /etc/group
hive:x:486:impala,hive,flasun,testuser,fastlane

但是,当我试图查询在文件夹上创建的表时,它会提供访问错误:

代码语言:javascript
运行
AI代码解释
复制
[root@jupiter fastlane]# sudo -u hive hive

hive> select * from test1.events_test limit 1;
FAILED: SemanticException Unable to determine if hdfs://mycluster/user/hive/warehouse/test1.db/events_test_venus is encrypted: org.apache.hadoop.security.AccessControlException: Permission denied: user=hive, access=EXECUTE, inode="/user/hive/warehouse/test1.db":impala:hive:drwxrwx--T
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:257)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:238)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkTraverse(DefaultAuthorizationProvider.java:180)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:137)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:138)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:6599)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:6581)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPathAccess(FSNamesystem.java:6506)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getEZForPath(FSNamesystem.java:9141)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getEZForPath(NameNodeRpcServer.java:1582)
    at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getEZForPath(AuthorizationProviderProxyClientProtocol.java:926)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getEZForPath(ClientNamenodeProtocolServerSideTranslatorPB.java:1343)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1060)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2040)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2038)

有什么办法对付它吗??基本上,我们试图利用这样一个事实:通过授予组级别的读和写权限,我们应该能够让任何组用户创建和使用文件夹所有者创建的表,但这似乎是不可能的。是因为只有Impala拥有Sentry授权,它使用用户的非个性化,而Hive,独立并不是这样吗?

有人能指点或确认一下吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-08-28 02:14:05

您可以将hdfs的umask设置为1000并重新启动集群。这将确保在此更改之后创建的所有目录或文件都具有权限777。在此之后,对目录和文件夹应用正确的所有权和权限,以确保其他目录的权限不会打开。将umask设置为000不会更改现有目录的权限。只有新创建的目录/文件会受到影响。如果您正在使用cloudera管理器,则很容易进行此更改。

注意:U掩码000将使所有文件/目录具有默认权限777。这将提供打开的权限。因此,通过在父目录级别应用权限和acls来处理此问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32268052

复制
相关文章
编程篇(006)-请写出以下代码的执行结果
(function() { fn(); var fn = function() { alert(1); } fn(); function fn() { alert(2) } })() 参考答案: 第一次弹出2,第二次弹出1 解析: // 变量提升之后的代码: (function() { function fn() { alert(2) } var fn; fn(); // 弹出2
齐丶先丶森
2022/05/12
2650
编程篇(007)-请写出以下代码的执行结果
以上两个例子中,除了var aValue = e;这一句位置不同:例1位于外层匿名函数中、例2位于内层匿名函数中,其他部分完全相同。为什么结果不同?
齐丶先丶森
2022/05/12
3280
hibernate for循环执行添加操作出错问题
hibernate插入对象的时候,对于id唯一,数据库设置为自增的时候执行完操作后会将id赋予该对象
陈灬大灬海
2018/09/12
8130
hibernate for循环执行添加操作出错问题
Oracle——无法在查询中执行 DML 操作
create or replace function test_f(id varchar2) return varchar2 is Result varchar2(100); begin insert into sfcs_temp_17109 (sn)values(id);
_一级菜鸟
2019/09/10
4.4K0
Oracle——无法在查询中执行 DML 操作
Oracle中执行truncate操作出现hang
同事说某套Oracle中有一张94G容量的表需要清空,用delete删除的,但是一直卡着。
bisal
2021/11/08
6880
JS动态添加表单
<script type=”text/javascript”> function addRow()<!–js实现添加一行内容!–> { var tr=document.createElement(“tr”); var td=document.createElement(“td”); var input=document.createElement(“input”); input.setAttribute(“type”,”file”); input.setAttribute(“name”,”image[]”)
苦咖啡
2018/05/07
14.2K0
oracle 添加执行上一条指令 安装rlwrap
https://linux.linuxidc.com/index.php?folder=cHViLzIwMTEvMDcvMDQvcmx3cmFw rpm -ivh http://mirror.cent
用户5760343
2022/05/20
3930
Oracle 利用执行计划来避免排序操作
在Oracle中,利用index来避免排序 SQL> CREATE TABLE T_NOSORT (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30) NOT NULL); SQL> CREATE INDEX IND_T_NOSORT_NAME ON T_NOSORT(NAME); SQL> INSERT INTO T_NOSORT SELECT ROWNUM, TABLE_NAME FROM USER_TABLES; SQL> COMMIT; SQL> SET AUTOT O
星哥玩云
2022/08/17
3430
Oracle中对临时表空间执行shrink操作
《Oracle一个诡异的临时表空间不足的问题》中提到对临时表空间执行shrink space的操作,以前一直理解只有对表能做shrink space的操作,但从官方文档看,11g开始,就可以对临时表空间执行相同的操作。
bisal
2022/09/19
5730
Oracle中对临时表空间执行shrink操作
《Oracle一个诡异的临时表空间不足的问题》中提到对临时表空间执行shrink space的操作,以前一直理解只有对表能做shrink space的操作,但从官方文档看,11g开始,就可以对临时表空间执行相同的操作。
bisal
2022/09/19
4920
14表单操作
表单操作 获取表单 获取表单元素 通过常规方式 Document对象方式。document.getElementById('form')等。 通过Document的属性forms ``document.forms` 返回结果为HTMLCollection。 通过表单的name名字。 此方法不推荐。因为在新版本的浏览器中可能不再支持。 如果返回结果为一个时类型为对象,多个时是集合。 获取表单组件元素 常规方式 Document对象方式。document.getElementById('form_input
Dreamy.TZK
2020/05/15
3860
ElementUI动态添加表单项
chao超的搬运文章
2023/10/15
3310
Hplus框架动态添加选项卡功能(扩展)
hplus框架确实是后端开发人员的福音,但是有很多功能没有实现,我根据网上大神的做法,实现了动态添加选项卡来打开新页面的功能。
别团等shy哥发育
2023/02/25
7770
Hplus框架动态添加选项卡功能(扩展)
WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容
  在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任何有用的功能。   这篇文章里面,我们将实现对选项卡里面的内容和功能实现自定义。 完整系列   ● 第一部分   ● 第二部分   ● 第三部分 在Git中下载工程源码
全栈程序员站长
2022/09/13
1.7K0
WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容
JQuery表格表单操作
1、多选框应用代码示例 <form action=”#” method=”post”> 你喜欢的明星是?<br /> <input type=”checkbox” name=”boxs” value=”张嘉译” id=”1″ /><label for=”1″>张嘉译</label> <input type=”checkbox” name=”boxs” value=”周润发” id=”2″ /><label for=”2″>周润发</label> <input type=”checkbox” name=”bo
苦咖啡
2018/05/07
1.6K0
jquery 操作表单表格
$("tr:contains('王五')").addClass("selected")
用户5760343
2019/10/08
1.6K0
jquery 操作表单表格
oracle添加not null约束
大家好,又见面了,我是你们的朋友全栈君。在创建表时,为列添加not null约束,形式如下: column_name data_type [constraint constraint_name] not null 其中,constraint constraint_name 表示为约束指定名称。 也可以为已创建的表中添加not null约束,这时就需要使用alter table… modify语句,形式如下: alter table table_name modify column_name [constraint constraint_name] not null;
全栈程序员站长
2022/09/06
8130
用 PyQt 打造具有专业外观的 GUI
如果您一直在创建表单以执行将数据输入数据库等操作,那么QFormLayout适合您。此类将小部件布置为两列布局。第一列通常显示描述预期输入的标签,第二列通常包含允许用户输入或编辑数据的输入小部件,例如QLineEdit,QComboBox或QSpinBox。
sergiojune
2021/07/19
2.9K0
用 PyQt 打造具有专业外观的 GUI
Contact Form 7插件添加表单教程
作为一个网站所有者,你绝对应该学习如何添加一个联系表单到WordPress。你的网站不是一个匿名实体。大多数人都想知道,偶尔也会和他们所读内容背后的人互动。你认为为什么会有作者简介和博客评论?今天外贸
Hoan外贸建站
2020/12/03
1.9K0
dreamweaver添加表单_dreamweaver网页制作代码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169646.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
1.8K0
dreamweaver添加表单_dreamweaver网页制作代码

相似问题

如何构造Python包(?)要向各个模块添加文件,请执行以下操作

13

要向选项卡添加更具描述性/更有意义的id名称,请执行以下操作

22

要添加文件,请执行以下操作

10

Jquery:如果选中单选按钮A,请执行以下操作。如果检查B,请执行以下操作

27

若要在表中添加列表项,请执行以下操作

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档