课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展越来越多的人在学习大数据技术,而今天我们就一起来了解一下,大数据数据分析的三个步骤。
一、数据采集
在数据采集方面主要面临内部和云上两个挑战:
内部:在内部,其实是一个比较可控的环境,但是因为数据量太大,每日百TB级别的规模,面临着节约成本的问题;
云上:尽管数据量相对较小,由于网络环境比较复杂以及各种限制,数据采集依旧困难。
针对内部的挑战,我们的解决方案是在埋点时输出日志到本地,通过日志Agent读取日志,然后再通过实时计算的处理层主动拉取日志再进行处理。该方案直接复用应用机器存储日志,并且采用拉模式防止流量冲击过大。
针对云上的挑战,我们的解决方案利用消息队列的方式,埋点层主动发送消息,消息队列对消息进行存储,数据处理层从消息队列上订阅消息。这种方案可做到数据不丢,且主动推送可以提高实时性,环境适应性强;但这种解决方案的成本是比较高的。
二、数据分析
数据采集的下一阶段是数据分析。数据分析主要分为调用级分析和链路级分析:
调用级分析是指对单次调用数据,可以马上进行分析,按照指定的统计维度进行实时聚合即可,实时性为秒级。对于上文提到的采样情况下,为了保证数据统计的准确性,埋点层需要另外输出一份统计日志。
链路级分析是调用链中为关键的分析,它一般采用离线计算方案,将统一个TraceId的调用链先汇总在同一个Reduce任务重,调用链重组后再进行分析。类似于强弱依赖分析、调用频繁度分析、耗时瓶颈分析是属于链路级分析。链路级分析的难点在于数据残缺补全,维度归一化和统计维度爆炸等问题。
三、数据存储
在数据存储时,不同的数据类型存储的方式存在差异:
对于时间序列数据,我们是基于HBase存储,是OpenTSDB的修改后方案,解决聚合数据重复提交以及统计维度爆炸等问题。
对于调用链数据存储,分为三个阶段:
(1)阶段一:使用HBase存储,TraceId做rowkey;
(2)阶段二:使用Hadoop/ODPS存储,按TraceId的时间戳和哈希值进行分片,分片内按TraceId排序;针对调用中记录的每个列进行针对性压缩,节省存储;
(3)阶段三:使用分库分表的HiStore存储(将在DRDS铂金版推出),按TraceId的时间戳和哈希值进行分库分表;HiStore支持列式高压缩比存储,兼容MySQL生态,非常适合写多读少的场景。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。