分享

基于Flink的批流处理实战案例

本帖最后由 pig2 于 2020-7-14 19:20 编辑
2020-07-14_183635.jpg

链接: https://pan.baidu.com/s/1pQmvekbXLSPhNP550DhWSw 提取码: 6ite


flink-in-action

实用的flink使用的范例:

一、simple-actions下是一些简单的使用范例,包括:
  •     actionanalysis是电商平台用户购物行为数据分析系统,它根据用户行为数据(包括用户行为习惯数据和业务行为数据),分析用户喜好.
  •     appendstreamsql目录下是一个简单的flink流处理Sql程序.
  •     asyncinvoke目录下是一个异步处理算子的应用,FLink异步I/O非常实用,如果使用得当会大幅度提升性能(当然,增加并发度能达到类似的效果, 但使用的机器资源将会非常大).
  •     batch目录下是一个简单的flink批处理应用--batch wordcount.
  •     continuouseventtime目录下是一个定时触发器的简单实现.
  •     dataproduce目录下是一个模拟生成kafka消息的工具.
  •     licenseNumber是一个车牌号限制汇总系统,它通过消费kafka中采集到的车辆监控信息,与限号规则进行比较,来判定车辆是否违规.
  •     loginfaildetect是一个根据登录行为异常检测程序,分为不用CEP实现的版本和使用CEP实现的版本.
  •     networkanalysis是一个网站流量检测程序,从日志从获取数据,并每5秒统计一次最近10分钟访问量最高的10个url.
  •     ordertimeoutdetect是一个下单超时检测程序,如果用户下单后超过15分钟仍不付款,则将其列为超时订单.
  •     rdbms目录下是一个消费kafka消息并将结果写入mysql的flink流式计算应用.
  •     servermonitor是一个服务器存活状态监控程序,如果在收到服务器下线状态超过5分钟仍没有上线状态,则会发出一条报警信息.
  •     streaming目录下是一个简单的flink流式计算应用--straming wordcount.
  •     streamingsql目录下是一个flink streaming sql应用,基于flink 1.9.0版本,可以实时从kafka接收数据并经过简单的sql etl,将结果写入mysql表中.
  •     streamjoin是一个实现双流join的程序,实现了滚动窗口3秒内数据的内连接,左连接和右连接.
  •     utils下是一些实用的工具类,包括mysql、orcfile、sqlparser、kafkasource、序列化器、属性文件读取、时间工具等.

二、recommand-actions结合web-actions是一个基于Flink实现的商品实时推荐系统,它基于实时日志对用户进行画像,并根据画像结果将热门商品排序并推荐给用户,其共分为6个子任务:
  •     日志任务:用户访问商品日志数据写入kafka,然后flink任务消费kafka的日志topic,不做过滤直接写入hbase中.
  •     浏览历史记录任务:读取用户访问商品日志记录,并将用户访问表的对应用户的商品访问加1,将商品访问表的对应商品的用户的访问加1.
  •     用户兴趣任务:读取用户访问商品日志记录,并记录用户在指定的间隔时间内(100s),连续发生的操作行为,并据此提高用户对某商品的兴趣度.
  •     用户画像任务:读取用户访问商品日志记录,并根据商品的产地颜色风格三维特征,记录用户对这些特征的喜好程度,进行用户兴趣画像.
  •     商品画像任务:读取用户访问商品日志记录,并根据浏览商品的用户的性别及年龄特征,记录产品受这些特征用户的喜好程度,进行产品画像.
  •     热门商品任务:读取用户访问商品日志记录,通过ListState存储热度商品,每5秒输出一次最近60秒的商品热度情况.
  • recommand-actions中的scheduler包下:
  •     ItemCfCoeff实现了协同过滤算法策略,计算产品的相关度,主要依据是浏览该产品的用户的相似度.
  •     ProductCoeff实现了余弦相似度算法策略, 计算产品相关度.

三、工具方法,包括simple-actions目录下:
  •     source-generator.sh用来生成kafka topic的消息.
  •     run-command.sh是一个启动simple-actions下flink任务的脚本.
  •     kafka-common.sh是一个模拟自动生成消息并发往kafka的脚本.
  •     env.sh下是flink和kafka的安装目录,需要根据具体目录调整.

作者:zlzhang0122
来源:https://github.com/zlzhang0122/flink-in-action


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条