覆盖 hdfs 目录 Sqoop 导入

Posted

技术标签:

【中文标题】覆盖 hdfs 目录 Sqoop 导入【英文标题】:overwrite hdfs directory Sqoop import 【发布时间】:2016-10-19 11:28:10 【问题描述】:

是否可以在 Sqoop 导入时自动覆盖 HDFS 目录而不是每次手动覆盖它? (我们有没有像 hive import "--hive-overwrite" 这样的 "--overwrite" 选项)

【问题讨论】:

【参考方案1】:

使用--delete-target-dir

​在向该目录写入数据之前,会删除命令中提供的<HDFS-target-dir>

【讨论】:

您好,我们如何使用带有 hcatalog 集成的 sqoop 来处理这个问题。我知道我们有办法在 sqoop 导入之前截断表。【参考方案2】:

使用这个:--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表数据。

【讨论】:

以上是关于覆盖 hdfs 目录 Sqoop 导入的主要内容,如果未能解决你的问题,请参考以下文章

sqoop ETL工具

sqoop ETL工具

如何更改sqoop导入临时目录

大数据高级开发工程师——大数据相关工具之一 Sqoop

sqoop连接MySQL导入hdfs报错

Sqoop 数据迁移工具