DataCollections
Kafka生产 flume采集 sqoop抽取数据到Hive spark处理
大三下学期期末项目
项目简介
- 项目主题10 云部署+ 域名 + 服务 。云部署的形式,可以在任何有互联网的地方访问,如 访问百度一样,在连接互联网的机房都可以访问。相比较项目1,云服务器上的环境,可能要重新配置环境,出现问题,可能要练习云客服等才能处理。云服务也意味着收费,所以请慎重选择。云部署形式会增加很多的部署工作,所以评分也会相应的比较高。如果域名申请,时间较长,麻烦的话,可以通过nginx,反向代理通过IP去访问不用域名
项目名称
Orders information statistical system( 订单信息统计系统)
项目要求
-
Kafka data production (kafka 数据生产) 这个模块主要用来模拟在实时的业务系统中,用户数据是实时生产的,并推送到kafka 相应的主题中。 1) 使用java 代码实现producer,并每隔5s推送以下数据给 kafka的 orders主题 需要推送的数据格式,请使用随机数 +数组 的形式进行随机产生,结果如下: 5个字段:分别是 订单类别,订单名字,订单数量,日期,顾客评分(很喜欢这个物品100,还行 50, 不喜欢 0 ),是否有效: Y是有效,N无效分隔符可以用 \t 进行拼接。 2) 使用 flume 定时采集 相应kafka的数据写入到hdfs 的 /home/flume 3) 使用 sqoop 定时将 Spark data processing 所有处理的所有需求数据 抽取到 中央仓库 hive,建立相应的数据库名字 orders。
-
Spark data processing 选这个模块主要使用 spark mysql ,hive 或者 kafka ,并进行需求处理,并将统计的结果写入相应的数据库表中 1) 使用 spark sql / spark streaming 创建消费者读取相应主题的数据 2) 使用 spark sql / spark streaming 实时统计 分别统计 所有有效和无效订单号的总和 3) 使用 spark sql / spark streaming 实时统计 各个订单号 各自的有效和无效数量 4) 使用 spark sql / spark streaming 实时统计 所有订单类别的数量 5) 使用 spark sql 统计 各个订单的有效数和无效数的数量 6) 使用 spark core/rdd 统计 各个订单的 各个类别的有效和无效数量 7) 协同过滤推荐 a. 建立 订单-类别的关系矩阵
b. 建立 类别-类别 的关系矩阵
c. 基于 Item-Base CF 生成每个物品的推荐列表 d. 基于 User-Base CF 生成每个顾客的推荐列表 提示:前端展示的工具或者 echarts 展示的项目直接读取 mysql ,不用和后端的spark+kafka在同一个项目。前端所有展示的数据指标最好在同一个项目中。 3. Data visualization 展示学生信息 1)注册和登录页面 ,用户信息存储于mysql中
2) 用户登录后,首页使用echarts静态展示所所有有效和无效数量的各自的总和,以及各自类别的有效和无效数量
3) 个性化推荐:展示个性化推荐前6的类别名单。基于Item-Base 3个基于User-Base 3个。(基于协同过滤推荐的名单)
4)离线推荐:展示有效最多的前3的类别
5)通过搜索展示目标类别,以及相似类别top3 的推荐
项目结构
技术选型
数据生产 Java + Apache Kafka 数据采集 Apache Flume 数据抽取 Apache Sqoop 数据处理 Apache Spark (Spark SQL / Spark Streaming / Spark Core) 数据存储 MySQL + Hive + HDFS