【问题标题】: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
    

    但这并没有真正的帮助。我想像用户那样从另一个用户那里删除一个表。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 2017-05-01
      • 2021-06-07
      • 2012-09-10
      • 2018-11-11
      • 2018-07-30
      相关资源
      最近更新 更多