Hadoop 更改配置单元数据库位置

Hadoop 更改配置单元数据库位置,hadoop,hive,hdfs,cloudera,Hadoop,Hive,Hdfs,Cloudera,有没有办法改变数据库指向的位置 我尝试了以下方法: alterdatabasesetdbproperties('hive.warehouse.dir'='') alter数据库集DBPROPERTIES('location'='') 更改数据库集位置“” 前两个alter语句只是更改了DB属性,但是数据库仍然指向相同的位置;而第三个alter语句给了我语义错误 任何帮助都将不胜感激。经过反复尝试,我了解到在数据库上运行ALTER时,Hive不支持以下两个条件 不允许更改目录位置或数据库名称 不允

有没有办法改变数据库指向的位置

我尝试了以下方法:

  • alterdatabasesetdbproperties('hive.warehouse.dir'='')

  • alter数据库集DBPROPERTIES('location'='')

  • 更改数据库集位置“”

  • 前两个alter语句只是更改了DB属性,但是数据库仍然指向相同的位置;而第三个alter语句给了我语义错误


    任何帮助都将不胜感激。

    经过反复尝试,我了解到在数据库上运行ALTER时,Hive不支持以下两个条件

  • 不允许更改目录位置或数据库名称
  • 不允许删除或取消设置以前定义的db属性
  • 但是,我发现了一个指向解决方案的链接,该解决方案涉及到对配置单元元存储的直接DB更新,并简单地在HDFS上移动目录

    先前的回答不正确:

    在alter之前创建的表将位于上一个位置。只有在alter之后创建的表才会放入新位置。您必须手动移动HDFS上的目录并更新表位置。有关数据库和表位置的详细信息,请参阅和


    要更改表的位置,可以运行
    altertable SET location”/path/To/new/location这也可以应用于分区级别

    您想更改配置单元仓库目录吗?感谢您的帮助,但我要寻找的是-如果我已经创建了一个数据库,现在我想将它移动到HDFS中的另一个目录。如何实现这一点?我对HIVE-1537的理解是,您必须更新数据库位置并手动移动HDFS上的文件。您还必须使用上述alter更改每个现有表的位置。新表将放在数据库的新位置。请参阅我的更新答案,我之前的答案不正确,无法使用。