Hive的权限管理一直是比较弱的,最近在线上发现了一个问题.线上一个ETL开发drop掉temp database里的一张表,但是发现hdfs上文件还在!
首先明确一下Hive drop table的流程:
0.删除metadata
1.如果没有启用trash则直接删除hdfs文件
2.如果启用trash:
a)如果trash目录无权限访问(默认/user/<username>/.trash)文件则成为“僵尸”文件,永远保留在那里
b)否则若用hive command执行或hiveserver开启了impersonation则将文件移动到/user/<username>/.trash下,否则移动到/user/<hiveserver runner>/.trash下
线上出现这个问题是因为/user目录的mode为700,用户无法创建自己的目录导致删除文件失败,从以上流程可以看到,Hive的权限和HDFS的权限是相分离的,而这个问题实为Hive的Bug一直还没有得到修复
本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1334530,如需转载请自行联系原作者
本文探讨了Hive在Drop Table操作时遇到的权限问题,特别是当HDFS的/user目录权限设置不当导致的文件无法正确删除的情况。文章详细分析了Hive Drop Table的具体流程,并指出该问题实际上是Hive的一个未解决的Bug。
1070

被折叠的 条评论
为什么被折叠?



