离线数仓数据可靠性的问题

1.如何检测?

        使用脚本统计日志服务器上的采集的日志文件的行数与HDFS上的目标存储目录中的文件的行数,进行对比

2.如何保证数据的不丢失?

日志采集网络架构设计为两层

第一级采用了tailDirSource,fileChannel,avroSink的搭配,

第二级采用了avroSource,fileChannel,hdfsSink的搭配

tailDirSource实现了flume的事务机制,并且可以记录偏移量

fileChannel落地磁盘,是可靠的

第一级的avroSink和avroSource配置成failover,是高可用的

最后落地在hdfs,也是可靠的

3.采集的日志数据可能出现数据重复的问题

出现的原因:

        有可能出现数据重复-不过数据重复也只是在出现故障后重启才有可能出现,而且通常只会有少量重复(一个或几个批次),如果出现了flume宕机并重启,我们在后续的常规数仓计算流程前,加入一个数据去重的计算任务

如何发现数据重复的问题:

        对比hdfs中采集的日志文件的行数和日志服务器上的日志文件的行数

4.数据是否有重复数据的判断与处理

        1 ) 在日志服务器上使用脚本统计各个日志服务器采集的日志数据的行数,将统计的结果发送到web项目的meta_bus中;

        2 ) 在可以连接hdfs集群的机器上使用脚本,从meta_bus中获取当日日志服务器上的日志数据的总行数,将其与hdfs目标目录下的日志数据的总行数进行比较

        3)如果hdfs上统计出的行数>各个日志服务器上的总行数,说明有数据重复,需要进行去重任务

        4)在hive中创建一张临时表,导入hdfs中的数据,

        5)使用HQL对数据进行去重(GROUP BY )

        6)将数据重新导出到放去重任务目录下

        7)使用脚本将数据导入到ods层的表中

        8)在导入之前需要判断是否有进行去重任务(即判断该日去重任务目录下是否有数据),以确定从哪个目录下加载数据

        9)如果去重任务目录下有数据,从去重任务目录下加载到ods层;如果没有,则从hdfs的日志目录下加载数据

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值