
# Flink DataStream样例程序开发思路
#### 场景说明
假定用户有某个网站周末网民网购停留时间的日志文本，基于某些业务要求，要求开发Flink的DataStream应用程序实现如下功能：
![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
DataStream应用程序可以在Windows环境和Linux环境中运行。
- 实时统计总计网购时间超过2个小时的女性网民信息。
- 周末两天的日志文件第一列为姓名，第二列为性别，第三列为本次停留时间，单位为分钟，分隔符为","。 log1.txt：周六网民停留日志。该日志文件在该样例程序中的data目录下获取。
  ```
  LiuYang,female,20
  YuanJing,male,10
  GuoYijun,male,5
  CaiXuyu,female,50
  Liyuan,male,20
  FangBo,female,50
  LiuYang,female,20
  YuanJing,male,10
  GuoYijun,male,50
  CaiXuyu,female,50
  FangBo,female,60
  ```
  log2.txt：周日网民停留日志。该日志文件在该样例程序中的data目录下获取。
  ```
  LiuYang,female,20
  YuanJing,male,10
  CaiXuyu,female,50
  FangBo,female,50
  GuoYijun,male,5
  CaiXuyu,female,50
  Liyuan,male,20
  CaiXuyu,female,50
  FangBo,female,50
  LiuYang,female,20
  YuanJing,male,10
  FangBo,female,50
  GuoYijun,male,50
  CaiXuyu,female,50
  FangBo,female,60
  ```
  
 
#### 数据规划
DataStream样例工程的数据存储在文本中。
将log1.txt和log2.txt放置在指定路径下，例如"/opt/log1.txt"和"/opt/log2.txt"。
![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 数据文件若存放在本地文件系统，需在所有部署Yarn NodeManager的节点指定目录放置，并设置运行用户访问权限。
- 或将数据文件放置于HDFS，并指定程序中读取文件路径HDFS路径，例如"hdfs://hacluster/path/to/file"。
 
#### 开发思路
统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
主要分为四个部分：
1. 读取文本数据，生成相应DataStream，解析数据生成UserRecord信息。
2. 筛选女性网民上网时间数据信息。
3. 按照姓名、性别进行keyby操作，并汇总在一个时间窗口内每个女性上网时间。
4. 筛选连续上网时间超过阈值的用户，并获取结果。
 
