- 作业流程:
mysql binlog——(steamsets)——>kafka——(sparkstreaming、sparksql)——>redis
除了把结果数据放redis以外,还有把验证数据放redis - 如果kafka中堆积很多数据,sparkstreaming一批次消费,导致验证redis里面的数据不准确,导致结果数据错误
解决办法:在判断语句之间,加入println,使得在driver端执行了之后再执行后面的语句 - 运行sparkstreaming的机子获取当前时间A与进来的binlog时间B有差距,如果以时间A判断时间B来获取数据,会在跨天的时候不准确。
解决办法:除了与时间A匹配的数据拿到以外,如果有时间A+1Day的时间B的数据,也取过来