浏览器访问应用服务器,得到的页面触发JS,JS采集的数据通过网页嵌入的图片提交到日志服务器 ,日志服务器通过Log4jAppender发给FlumAgent进行数据收集,FlumAgent将数据通过随机分发在两个中心服务器上。
离线分析:
中心服务器将数据按日期存储在HDFS上,用hive对HDFS上的数据进行清洗,得到自己想要的字段保存起来,把清洗后的数据进行处理,通过定时任务hive每天晚上12点自己加载数据进行处理,每天早上只需要检查hive有没有需要的数据,在用户需要的时候可以自己导出到mysql中。最后进行可视化展示。
实时分析:
用“Kafka Sink”将flum中心服务器的数据发布一份到kafka(kafka的生产端是flum,消费端是sparkstreaming),sparkstreaming消费kafka数据,将消费到的数据“kafkaStream”在spark清洗数据,得到清洗后的数据“clearStream”,处理数据(基于清洗后的数据算出8个指标)得到结果数据resultStream。最后将结果数据存储在mysql中。最后进行可视化展示。
以上的服务器我都是在自己本机部署的,考虑到资源问题,所以我的应用服务器没有进行部署
大家可以根据自己的情况,进行部署。但大致流程都是一样
在此之前我们需要5个服务器