2014-10-17 44 views
0

我使用Sqoop將數據從Oracle導入Hadoop。在Oracle表中,我有大約2百萬條記錄,而我正在提供的主鍵是分割字段。Sqoop沒有使用所有指定的映射器

我的sqoop工作正在完成,我得到正確的數據和工作正在運行30分鐘,直到現在都好。

當我檢查輸出文件時,我看到第一個文件是1.4 GB,第二個文件大約是157.2 MB,最後一個文件(第20個文件)大約是10.4 MB,而第3個到第19個所有其他文件都是0字節。

我在設置-m 20,因爲我想爲我的工作運行20個映射器。

這裏是sqoop命令:

sqoop進口--connect 「CONNECTION_STRING」 --query 「SELECT * FROM WHERE和\ $條件」 --split-由.ID --target-DIR/output_data - m 20

注意:我的羣集足夠處理20個映射器,並且數據庫一次也能夠處理20個請求。

有沒有想法?

  • Dharmesh

回答

1

嘗試使用不同--split按領域更好的負載平衡。

0

這是因爲主鍵(ID)不是均勻分佈的。因此,你的映射器並沒有被適當地使用。所以你必須使用一些其他領域的分裂均勻分佈。

相關問題