为什么在V100R002C50RC1版本中创建的CarbonData表不具有Hive特权为非所有者提供的特权?
问题
为什么在V100R002C50RC1版本中创建的CarbonData表不具有Hive特权为非所有者提供的特权?
回答
Hive ACL在V100R002C50RC1版本之后实现,因此无法体现Hive ACL特权。
为了支持在V100R002C50RC1中创建的CarbonData表的HIVE ACL特权,必须由表的所有者执行以下两个ALTER TABLE命令。
ALTER TABLE $dbname.$tablename SET LOCATION '$carbon.store/$dbname/$tablename';
ALTER TABLE $dbname.$tablename SET SERDEPROPERTIES ('path'='$carbon.store/$dbname/$tablename');
示例:
假设数据库名称为"carbondb",表名为"carbontable",Carbon的储存位置为“hdfs://hacluster/user/hive/warehouse/carbon.store”,执行如下命令:
ALTER TABLE carbondb.carbontable SET LOCATION 'hdfs://hacluster/user/hive/warehouse/carbon.store/carbondb/carbontable';
ALTER TABLE carbondb.carbontable SET SERDEPROPERTIES ('path'='hdfs://hacluster/user/hive/warehouse/carbon.store/carbondb/carbontable');