Har*_*man 6 hadoop hive hdfs cloudera
有没有办法改变数据库指向的位置?
我尝试了以下方法:
alter database <my_db> set DBPROPERTIES('hive.warehouse.dir'='<new_hdfs_loc>');
alter database <my_db> set DBPROPERTIES('location'='<new_hdfs_loc>');
alter database <my_db> set location '<new_hdfs_loc>';
前两个alter语句只更改了DB属性,但数据库仍指向同一位置; 而第三个alter语句给了我语义错误.
任何帮助将受到高度赞赏.
经过一些试验和错误,我了解到Hive在数据库上运行ALTER时不支持以下两个条件.
但是,我找到了一个解决方法的链接,该链接涉及对Hive Metastore的直接数据库更新,只需在HDFS上移动目录. http://gaganonthenet.com/2015/02/23/hive-change-location-for-database-or-schema/
以前的答案不正确:
在alter之前创建的表将存在于之前的位置.只有在alter之后创建的表才会被放入新位置.您必须手动移动HDFS上的目录并更新表位置.有关数据库和表的详细信息,请参阅https://issues.apache.org/jira/browse/HIVE-1537和https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/PartitionLocation位置.
要更改表的位置,您可以运行ALTER TABLE <table> SET LOCATION "/path/to/new/location"; 它也可以在分区级别应用.
| 归档时间: |
|
| 查看次数: |
16215 次 |
| 最近记录: |