# spark

# 项目周项目
## 项目主题10
 - 项目介绍：云部署+ 域名 + 服务 。云部署的形式，可以在任何有互联网的地方访问，如 访问百度一样，在连接互联网的机房都可以访问。相比较项目1，云服务器上的环境，可能要重新配置环境，出现问题，可能要联系云客服等才能处理。云服务也意味着收费，所以请慎重选择。云部署形式会增加很多的部署工作，所以评分也会相应的比较高。如果域名申请，时间较长，麻烦的话，可以通过nginx，反向代理通过IP去访问不用域名。

### **项目名称：** Orders information real-time statistical system( 订单信息实时统计系统)
编写程序： kafka + spark + Jsp & Servlet / 报表工具
完成方式： 组别形式（6人一组）。可以每位成员完成一项菜
可以使用git 管理自己团队开发的代码，组长负责创建仓库，其他组别添加为仓库成员，clone，使用idea 打开项目，commit和push，完成团队成员都能有最新的项目代码和代码提交记录。
项目展示时间： 项目周（具体时间请等待通知）
#### 项目考核内容： 
1. 系统能正常运行且添加
2. 正常展示相应的数据
3. 问题答辩
4. 关于项目的ppt， 每组展示时间不超过10分钟
5. 完成  完成一份niit项目报告
##### 内容包括： 
1) 项目部署
2) 前端 JSP & Servlet实现或报表工具实现，后端通过spark 处理kafka 实时数据
3) 功能：kafka实时数据生产,spark实时数据处理，数据实时展现
（这个报告期末的时候也要交）



##### 项目具体要求：
1. Kafka data real-time production (kafka 数据实时生产)
这个模块主要用来模拟在实时的业务系统中，用户数据是实时生产的,并推送到kafka 相应的主题中。
1）在kafka中创建 主题 orders 
2） 使用java 代码实现producer，并每隔5s推送以下数据给 kafka的 orders主题

 - 需要推送的数据格式，请使用随机数 +数组 的形式进行随机产生，结果如下：
 - 5个字段：分别是 订单类别，订单名字，订单数量，日期，是否有效: Y是有效，N无效

分隔符可以用 \t 进行拼接。

2. Spark real-time data processing
选这个模块主要使用 spark 读取kafka当中的相应topic 的数据，并进行需求处理。
1)  使用 spark streaming 创建消费者读取相应主题的数据
2)  使用 spark streaming 实时统计 每隔2秒 分别统计 所有有效和无效订单号的总和
3)  使用 spark streaming 实时统计 每隔2秒 各个订单号 各自的有效和无效数量
4)  使用 spark streaming 实时统计 每隔2秒 所有订单类别的数量
5)  使用 spark sql 统计 各个订单的有效数和无效数的数量
6)  使用 spark core/rdd 统计 各个订单的 各个类别的有效和无效数量
7)  可以将上边计算的结果 spark streaming推送到 kafka的一个新的主题，使用前端工具实时展示，spark core 和 spark rdd推送到 mysql 使用 echarts展示。 
提示：前端展示的工具或者实时展示 或者 echarts 展示的项目 直接读取 mysql 不用和后端的spark+kafka在同一个项目。前端所有展示的数据指标最好在同一个项目中。
3. Data visualization
 展示学生信息
 (1)实时展示所有有效和无效数量总和
 (2)实时展示各个订单号 各自的有效和无效数量
 (3)实时展示所有订单类别的数量
 (4)实时展示不同类别商品的有效数和无效数的数量
 (5)使用echarts饼状图展示 各个订单的 各个类别的有效和无效数量