diff --git a/README.md b/README.md index cc7b6ce..5a2136e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,65 @@ # DataCollections -Kafka生产 flume采集 sqoop抽取数据到Hive spark处理 \ No newline at end of file +Kafka生产 flume采集 sqoop抽取数据到Hive spark处理 + +# 大三下学期期末项目 +## 项目简介 + - 项目主题10 +云部署+ 域名 + 服务 。云部署的形式,可以在任何有互联网的地方访问,如 访问百度一样,在连接互联网的机房都可以访问。相比较项目1,云服务器上的环境,可能要重新配置环境,出现问题,可能要练习云客服等才能处理。云服务也意味着收费,所以请慎重选择。云部署形式会增加很多的部署工作,所以评分也会相应的比较高。如果域名申请,时间较长,麻烦的话,可以通过nginx,反向代理通过IP去访问不用域名 + +## 项目名称 +Orders information statistical system( 订单信息统计系统) + +## 项目要求 + +1. 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。 + + + +2. 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 \ No newline at end of file