无法删除表分区

删除分区语句

ALTER TABLE dws_db.dws_ccrm_dim_attr_spec_xxx DROP PARTITION(day_id='20200207');

抛出如下异常:

FAILED: Execution Error, return code 1 from org..hadoop.hive.ql.exec.DDLTask. 
Table partition not deleted since 
hdfs://nas2/domains/nas2/hxxt_yx/dws_db.db/dws_ccrm_dim_attr_spec_xxx
is not writable by hxxt_yx@HADOOP.CHINATELECOM.CN

根据这个异常信息查找hive源码,抛出异常代码如下:

 

就是在删除表分区时会去校验分区的父目录也就是表是否有写的权限,如果没有权限,那么就会抛出如上异常。

查看这个表和分区的权限,权限如下

 

发现这个表的属主和分区属主不一样,这个删除用户没有这个表的写权限。

解决办法:

解决办法以下一种:1、把这个表属主改成hxxt_yx 2、把hxxt_yx用户加到用户组

胜象大百科