sqoop 数据同步流程
公司用到了sqoop 顺便了解下sqoop的工作流程
1 工作流程
1.1 sqoop拉取数据第一步会连接到对方数据库,然后拉取数据到用户家目录!!!这一点要特别注意
在拉取前会检查家目录下面是否有这个目录,如果有就会报错
目前检查没问题就会拉起一个mr任务
1.2 拉取完成之后会创建表
1.3 表创建完成之后会load数据到表里面
1.4 最后删除家目录里面的数据
可能遇到的问题
以上可能遇到的问题
任务在中途失败或者人为手动停止 这时候家目录就有残留数据,结合第一步,那么下一次同步的时候就会报错!!!
这时候就需要加上参数 --delete-target-dir \ 这个参数和 --hive-overwrite 刚开始一直没理解清楚!!网上教程也没有一个说清楚的
区别就是--delete-target-dir 删除的是家目录存在的目录!!! --hive-overwrite 是覆盖(也可以理解为删除) 目标地址(库.表)
这两个参数作用于不同阶段!!!