覆盖 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 导入的主要内容,如果未能解决你的问题,请参考以下文章