LMS知識社群各系上網率圖資處首頁登入
位置: 鄭光盛 > 技術
Sqoop import 失敗 & Hadoop 移除檔案及目錄
by 鄭光盛 2017-04-14 10:24:17, 回應(1), 人氣(1826)
手癢亂下指令 --Hive-Partition-Key
把 Hive裡的 table 砍了,但是新增又不成功。
結果匯入資料時出現 
Output directory XXXX already exists

sqoop 在 create table時發生錯誤就會在 HDFS留下殘檔與目錄

解決方法
先查出有哪些檔案和目錄
Hadoop dfs -ls XXXX
移除檔案
Hadoop fs rm XXXXOOO001
Hadoop fs rm XXXXOOO002
Hadoop fs rm XXXXOOO003
...
移除目錄
Hadoop fs rm -R XXXX

然後再用 Sqoop 做 Import 的動作


標籤: Hive, Sqoop, Hadoop
回應(1)
--Hive-Partition-key 失敗的原因很簡單
主要是當作 key 的欄位,不能被匯入。

解決方法一
用 --query "select ......from ....." 把該欄位排除在外

解決方法二
匯入後 建立一個 table
create table table_a
(
...
)
PARTITONED BY (KEY 欄位)
CLUSTERED by (欄位) INTO xxx BUCKETS;

一樣,partition key 不能在資料表的欄位裡。

然後再 INSERT INTO
SET hive.enforce.bucketing = true;
Insert into table_a select * from `原來的 table`;