web-dev-qa-db-ja.com

hdfsディレクトリを上書きするSqoopインポート

Sqoopのインポート中に毎回手動で上書きするのではなく、HDFSディレクトリを自動的に上書きすることは可能ですか? (Hiveインポート「--Hive-overwrite」のように「--overwrite」のようなオプションはありますか)

5
Abhinav Singh

--delete-target-dirを使用します

このディレクトリにデータを書き込む前に、コマンドで指定された<HDFS-target-dir>を削除します。

12
Devender

これを使って: --delete-target-dir

これは、sqoop構文を使用してhdfsディレクトリを上書きする場合に機能します。

$ sqoop import --connect jdbc:mysql://localhost/dbname --username username -P --table tablename --delete-target-dir --target-dir '/targetdirectorypath' -m 1

例えば:

$ sqoop import --connect jdbc:mysql://localhost/abc --username root -P --table empsqooptargetdel --delete-target-dir --target-dir '/tmp/sqooptargetdirdelete' -m 1

このコマンドは、このコマンドが実行されるたびに、対応するhdfsディレクトリまたはHiveテーブルデータを更新された/更新されたデータで更新します。

5
adarikrishna