Hive更改表名FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Una ble
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Una
ble to alter table. Unable to access old location hdfs://mycluster/user/sjk/xx for table db1.xx
?
【注】
注意:重命名不能簡單的 ALETR TABLE table_a CHANGE NAME TO table_b,因為在Hive中,數據存儲在hdfs中,必須對存儲的數據文件做修改
RENAME TABLE
ALTER TABLE table_name RENAME TO new_table_name
這個命令可以讓用戶為表更名。數據所在的位置和分區名并不改變。換而言之,老的表名并未“釋放”,對老表的更改會改變新表的數據?
不,數據所在的位置會移動到hive表默認路徑下。如果建表是指定路徑LOCATION,那么重名之后,路徑會變更。
例子:創建表,插入數據
在hdfs上查看到數據:?
改名:報錯。
大致意思:
失敗:執行錯誤,從org.apache.hadoop.hive.ql. execl . ddltask返回代碼1。不能
更改表格。無法為表db1.ss訪問舊位置hdfs://mycluster/user/sjk/ss
所以:根據上邊錯誤提示中的路徑,刪除它。
再次改名:
但是,數據由于我們刪除了,所以也會丟失,
并且找不到表的位置:
總之,不曉得機制是怎么回事?不過在default默認的數據庫中,改名是直接可以完成的。
?
總結
以上是生活随笔為你收集整理的Hive更改表名FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Una ble的全部內容,希望文章能夠幫你解決所遇到的問題。