当前位置: 代码迷 >> 综合 >> 一套完整的webserver+Flume+kafka+storm整合方案
  详细解决方案

一套完整的webserver+Flume+kafka+storm整合方案

热度:14   发布时间:2023-12-25 20:37:07.0

实时处理系统:(Flume+Kafka+Storm+hbase+mysql)

 为什么要记录访问日志的行为?

通过日志我们可以得到网站页面上的访问量,网站的黏性,推荐用户行为分析,

是指在获得网站访问量基本数据的情况下,对有关数据进行统计、分析,从中发现用户访问网站的归类,

并将这些规律与网络营销策略等相结合,从而发现目前网络营销活动中可能存在的问题,并为进一步修正

或重新制定网络营销策略提供依据。

日志的产生:

  • 特定位置,特定行为动作的收集(点击按钮,搜索等事件触发);
  • 网址访问触发产生日志数据;
  • 从数据库,从网站直接发,爬虫;
  • 开发人员特殊位置设置的埋点,不需用户触发事件,即可进行日志数据产生

日志格式:

订单日志格式:

id ip mid 用户名 订单编号 订单地址 订单金额 订单时间 商品类别 商品名 商品价格 商品数据 请求URL 访问状态 关键词。。。。

论坛日志格式:

id ip地址 mid 文章编号 文章类型 请求方式 请求转台 访问模块 请求URL 请求时间。。。。

需求:

  • 用户所使用的搜索引擎、关键词、关键关联词、站内关键词
  • 用户选择什么样的入口形式(广告或者网站入口链接)更为有效
  • 用户访问网站流程,用来分析页面结构设计是否合理;
  • 用户在页面上的网页热点图分布数据和网页覆盖图数据;

业务需求:(举例)实时统计某一天的总交易额和每个省份某一天的总交易额

数据分析:(sum_money_日期  总交易额)   (sum_money_省份 总交易额)

1.mysql(关系表)

通过ip对应的表join省份对应的表,查询ip对应的省份

2:所需架包

  • storm-core 1.2.2
  • kafka_2.12 1.1.0
  • kafka-clients 1.1.0
  • kafka-streams 1.1.0
  • storm-kafka 1.2.2
  • zookeepr 
  • cutator-framework 4.0.0
  • clojure
  • curator-client
  • hbase
  • hbase-client
  • mysql-connect-java

3.编程(强调灵活编程,高效编程)

4.HBASE 启动:1.zookeeper2.hdfs3.hbase

创建sum_money_date表

创建sum_money_province_date

需要将数据保存到HBASE时候,我们使用HBASE API进行操作

API里面有一个API时incrementColumnValue,对统一rowkey下的同一列族下的同一列的值进行累加,而不是覆盖。

另外我们需要获取网络时间,并对时间进行适当的业务处理,格式化成我们想要的,代码中替换上面的date,让时间动态化

5.整合flume-kafka

这里是flume官网提供的,里面有具体的采集方案:http://flume.apache.org/FlumeUserGuide.html#kafka-sink

6.启动kafka-->创建kafka主题-->启动kafka的消费者-->启动生产者(flume)

7.测试

向flume监听的文件里面添加内容,然后观察kafka消费者的状态

8.整合kafka和storm

从kafka中获取数据,在bolt中进行数据清洗,数据分析,保存结果

storm官网里面有javaAPIhttps://storm.apache.org/releases/2.0.0-SNAPSHOT/javadocs/index.html

9.测试

运行主方法,向flume箭筒的文件里面添加内容,观察控制台

10.将清洗后的数据保存到HBASE

11.最后到前端页面的展示

里面涉及的各个方面,在我的博客中都有详细的说明文章

  相关解决方案