sqoop如何解决减量sqoop 数据去重???

recommendout是我mapreduce程序处理后的输出目录包括用户id,电影id经mapreduce计算处理得出的该电影对该用户的推荐度。mysql中的表movieRecommend的字段包括user_id,movie_id,rating没有设置主键。正常的结果是最终mysql中每个用户对每个商品有唯一的一个推荐度即(用户id+电影id)字段应该是unique的。但mapreduce和sqoop的job是定时多次执行的这样每次执行,recommendout目录中的sqoop 数据去重都会导入到mysql中造荿重复。

初次接触hadoop平台和其组件,请问这种问题是怎么解决的

sqoop是可以配置job自动运行的能自动記录上次同步的时间,不过如果任务失败就不方便重跑了(这方面经验不足)

目前的做法是手动去配置一个固定的同步周期和--last-modify值,这样┅来就可能有sqoop 数据去重重复的问题(比如sqoop 数据去重漂移、或者任务失败重跑需要一个保险的覆盖范围)

解决思路大致是在同步时先允许sqoop 數据去重重复,之后再跑一个去重sql比如:

不过这样做太不优雅,因为这样操作会多出一张没有实际意义的增量表

这里增量导入的做法差不多,只是增量到同一张表里注意需要添加--hive-database以及--hive-table选项让新sqoop 数据去重能自动load到hive表里,标准解释如下:

之后使用窗口函数sql去重处理

当然这樣要求原表有主键以及准确非空的修改时间如果没有还是用真正的流式sqoop 数据去重同步来做吧(maxwell解析binlog->kafka->flume->hive)

  • [TOC] 最近在研究sqoop 数据去重采集相关的知識,需要用到Sqoop把关系型sqoop 数据去重库的sqoop 数据去重导入到Hive里这里记录下自己的...

  • 原创减肥的那些事 作者孟医师 关注这个号的你可以说是相当有品味 无处不在的蛋白质来自减肥的那...

使用sqoop将hive中的sqoop 数据去重导入关系型sqoop 數据去重库怎么去重

使用sqoop将hive中的sqoop 数据去重导入关系型sqoop 数据去重库怎么去重

我要回帖

更多关于 sqoop 数据去重 的文章

 

随机推荐