【问题标题】:Hive - Drop table from another userHive - 从另一个用户删除表
【发布时间】:2017-06-21 08:06:26
【问题描述】:
我有一个蜂巢问题。我正在开发一个 cloudera 测试集群并禁用了权限管理,因此 Hive 中没有 ACL 处理。
现在我可以删除另一个用户的表。之后该表在 Hive 元存储中不存在。问题是,hdfs 中的文件进一步存在。
所以,如果我再次创建同一个表,它会被旧数据填充,因为相同的 hdfs parquet 文件。
所有用户都在组配置单元中。
所有 db 文件都被授予以下权限:rwxrwxrwt
要完全删除包含 hdfs 数据的表,我需要进行哪些更改?
提前致谢。
最好的问候
约恩
【问题讨论】:
标签:
permissions
hive
hdfs
cloudera
【解决方案1】:
您必须转到 Hue、文件浏览器并输入数据所在的路径,然后您可以将其删除或移至回收站。
【解决方案2】:
表格如下所示:
CREATE TABLE `schema.mytable`(
`sysdate` string,
`sai` double,
`art_nr` double,
`fakturierf_kz` double,
`vek` double,
`bek` double)
PARTITIONED BY (
`p_import_date` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
'hdfs://servername:8020/user/hive/warehouse/mydb.db/mytable'
TBLPROPERTIES (
'parquet.compress'='SNAPPY',
'transient_lastDdlTime'='1480519730');
当然我可以使用
从 shell 中删除文件
hdfs dfs -rm -r myfolder
但这并没有真正的帮助。我想像用户那样从另一个用户那里删除一个表。
谢谢