大数据项目开发进度(实时更新)

Posted 爱做梦的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据项目开发进度(实时更新)相关的知识,希望对你有一定的参考价值。

文章目录

前言

如果你从本文中学习到丝毫知识,那么请您点点关注、点赞、评论和收藏
大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人。从5月25号我们开始了为期两个月的实习,我们需要做一个大型大数据项目,一个项目由三个学生+一个企业的项目经理完成。请大家持续关注我的专栏,我会每天更新。
github地址:https://github.com/233zzh/TitanDataOperationSystem
专栏:大数据案例实战——大三春招大数据开发
专栏:Spark官方文档解读【Spark2.4.5中英双语】
博客地址:子浩的博客https://blog.csdn.net/weixin_43124279

项目概述

我们采用迭代式开发的软件开发过程

项目进度

第一周0525-0529:

  1. 确定项目题目和项目数据来源
    题目:数据分析运营系统
    数据来源:易头条的部分埋点日志文件+(如果我们后续需要海量数据,我们就写个程序来生成模拟数据)
  2. 学会使用SVN
    TortoiseSVN使用教程【多图超详细】——大数据开发实习(一)

第二周0601-0605:

0601:分析需求1
系统前端展示参考:友盟
0602:编写版本一的软件需求规格说明文档(SRS)(张志浩)
《v1软件需求规格说明文档(SRS)——大数据开发实习(二)》
0603:进行系统架构设计(非细节设计阶段)、安装环境2
0604:继续安装环境2、编写版本一的架构设计文档(赵磊)
《v1架构设计文档——大数据开发实习(三)》
0605:设计系统前端界面
分配任务如下:

赵磊:概况、用户分析
王阔:存留分析、终端属性分析
张志浩:渠道分析、用户参与度分析

第三周0608-0612:

0608:继续设计系统界面原型
0609:继续设计系统界面原型
0610:继续设计系统界面原型并完成
【迭代式开发】v1前端界面展示+代码——大数据开发实习(四)
0611:确定前端请求数据格式,设计前端所需要的数据库
【ADS层表-V1】前端页面所需的数据库设计——大数据开发实战项目(五)
0612

  1. 数据库访问技术选型,从 JAP、Mybatis、JDBC Templete 中选了 JDBC Templete
  2. 完成了项目架构的分层
  3. 对前后端进行了分包
  4. 部分模块的类与方法进行了粗略设计
    赵磊:概况(完成部分)、用户分析(未完成)
    王阔:存留分析(完成部分)、终端属性分析(未完成)
    张志浩:渠道分析(完成部分)、用户参与度分析(未完成)

Web设计技术选型、分层、分包以及类与方法设计——大数据开发实战项目(五)

第四周0615-0621:(周末加班)

0615

  1. 继续完成剩下模块的类与方法的设计
    赵磊:概况(部分完成,完成部分细节问题有待讨论、实践)、用户分析(部分完成,完成部分细节问题有待讨论、实践)
    王阔:存留分析(完成,但细节问题有待讨论、实践)、终端属性分析(未完成,因为要写部分代码的demo)
    张志浩:渠道分析(部分完成,完成部分细节问题有待讨论、实践)、用户参与度分析(部分完成,完成部分细节问题有待讨论、实践)
  2. 王阔(但未完成终端属性分析模块的类与方法的设计):实现存留分析部分demo,验证可行性作为web部分代码标准

【迭代式开发v1】类与方法设计(二)——大数据开发实战项目(七)

0616

  1. 张志浩、赵磊:实际去建Web前端页面所需的数据库(以前只是设计,并没有实际建表)
  2. 王阔:Web后端部分代码实现(注:未完成终端属性模块的类与方法设计:TerminalAttributes)

【迭代式开发v1】实际去建Web前端页面所需的数据库(以前只是设计)+Web后端部分代码实现——大数据开发实战项目(八)

0617:小组讨论确定代码注释规范+Web后端类与方法代码实现
【迭代式开发v1】Web后端类与方法代码实现——大数据开发实战项目(九)
0618:继续进行Web后端类与方法代码实现+前后端交互
0619:继续进行Web后端类与方法代码实现+前后端交互
0620:继续进行Web后端类与方法代码实现+前后端交互
0621:继续进行Web后端类与方法代码实现+前后端交互

第五周0622-0628:(周末加班)

0622:继续进行Web后端类与方法代码实现+前后端交互
0623:继续进行Web后端类与方法代码实现+前后端交互
0624:继续进行Web后端类与方法代码实现+前后端交互
(基本结束)原本打算今天把web部署到服务器上,但是第一我们服务器刚被老师重启过,我们怕有问题,第二web还不太完善,比如之前我们都是各自在本地使用mysql数据库,只建了与自己模块相关的数据库表,只对自己需要的表用代码进行了数据的模拟生成和插入,而我们之后部署到服务器,大家各自的模块就都得用同一个数据库——服务器上的数据库,所以服务器上的数据必须满足每个人的模块对数据的需求。但是我们没有那么多时间去做这个了,所以将完善web+在服务器上建库和生成并模拟数据+将web部署到服务器上任务放到周末,我们现在主要任务是数仓
0625

  • 开展数仓设计(全体成员)
    • 确定使用5层结构,ODS层–>DWD层–>DWS层–>DWT层–>ADS层
    • 进行了ODS和DWD层设计

先放一个数仓设计展示图,之后补一篇博客(最近加班太多了,来不及写博客)

0626

  • 开展数仓设计(全体成员)
    • 进行了部分DWS、DWT层设计

0627

  • 开展数仓设计(全体成员)

    • 进行了DWT层设计,完善了ODS层、DWD层和DWS层的设计
  • 因为服务器重启过,所以需要重新启动集群的环境:(张志浩+赵磊)

    • 将Hadoop、Zookeeper启动了起来
  • 绘制数仓各表之间的关系图(王阔)

先放一个集群启动命令+报错展示图,之后补一篇博客(最近加班太多了,来不及写博客)

0628

  • 完善web
  • 因为服务器重启过,所以需要重新启动集群的环境

第六周0629-0705:(周末加班)

0629:将web部署到服务器上
http://www.superhao.top:12121/src/material/installation.html
0630

  • 研究ip-mapping算法(张志浩、赵磊)
  • 将集群环境全部启动(张志浩、赵磊)
  • 编写数仓部分spark任务文档(王阔)

先放ip-mapping算法的部分截图

先放一个数仓表之间的关系样图,之后补一个高清图(最近加班太多了)

0701

  • (V1)实现ip-mapping代码初始版(spark图计算+scala)(张志浩)
  • 搭建 flume 日志采集平台(赵磊)
  • 编写模拟数据生成器业务逻辑(王阔)

0702

  • 分配hive表建表任务(全部成员)
  • 讨论了 id-mapping 的算法原理(全部成员)
  • 进一步讨论id-mapping、flume-kafka和hive任务的整合(全部成员)
  • (V2)改进ip-mapping代码初始版,考虑上一日的idmp字典整合(张志浩)
  • 实现模拟数据生成器(王阔)

0703

  • 构建spark任务的maven项目,构建完成,初步分包(王阔)
  • 完成 hive 建表(在idea写好建表sql语句,并用idea连接hive运行sql语句进行建表)(全部成员,各自完成自己的任务)
  • 在建表的过程中, hive 遇到了问题,解决问题https://blog.csdn.net/stable_zl/article/details/107111888

0704+0705

  • 小组讨论如何划分 spark 任务及实现要用到的技术
  • 复习 SparkSQL
  • 将模拟生成的数据通过 flume-kafka-flume 搭建的平台上传到 hdfs

第七周0706-0712:(周末加班)

0706

  • 进行spark任务项目结构设计(王阔)
  • 编写示例spark任务,完成了原始数据导入脚本,json解析任务(王阔)
    • 遇到的问题:spark读取hive lzo格式表遇到困难
  • 进行了 spark 的开发,将之前编写的 id-map 算法投入到我们的项目中实际使用(张志浩、赵磊)

0707

  • 把 idmap 做了完善,将其输入输出路径与实际的 hdfs 路径进行对应(以前是在win10本地目录写了几个txt文件进行测试)(张志浩、赵磊)
  • 进行spark任务编写(各自完成所分配的spark任务,遇到问题开会讨论)

0708

  • 进行spark任务编写(各自完成所分配的spark任务,遇到问题开会讨论)

0709

  • 进行spark任务编写(各自完成所分配的spark任务,遇到问题开会讨论)

0710

  • 进行spark任务编写(各自完成所分配的spark任务,遇到问题开会讨论)

0711+0712:(这周末任务少)

  • 完善spark任务
  • 讨论怎么样进行数据迁移
    • 学习了 sqoop 的相关知识,了解数据迁移的方法,但后来考虑到sqoop的底层依然是 mr,后选用spark jdbc做数据迁移
  • 完善文档

第八周0713-0717:

0713

  • 设计数据迁移逻辑(各自完成自己所分配部分)
    • 问题:讨论横表的更新方案,并且将其实现
      例如赵磊的base_retention_installation_day表,该表用作留存分析-留存用户中的新用户存留展示

0714

  • 测试写好的spark任务:因为前几天服务器集群崩了(我们需要hive数仓),所以我们写好的spark任务一直没有测试(执行)
    • 补充:我们不能在win本地用idea跑spark任务,会因为hive表为lzo压缩格式而报错

0715:编写各自的ads层数仓表到mysql的数据迁移任务代码(用SparkSQL进行迁移,以前选的是sqoop,但是sqoop的底层是mapreduce,速度大大慢于spark,所以我们最终选择了SparkSQL)

0716:去集群测试我们迁移任务代码

0717:测试atlas的使用,最终失败了,atlas无法监控hive表之间的血缘关系,我们测试了一下原因:用SparkSQL操作hive表,atlas就无法监控,但是直接在hive命令好用hiveSQL操作hive表,atlas就可以监控

第九周0720-0725:(完结)

0720、0721:编写、部署azkaban任务
0722:编写PPT、录制答辩视频
0723:编写《实训阶段总结报告》和《实训总结报告》
0724:答辩(在腾讯会议和实训项目经理对线)
0724:编写《13.T01模块部署流程手册.docx》和《14.T01用户使用手册.docx》


  1. 《v1数据分析运营系统的需求分析》
    1.整体趋势:
    基础统计数值:包括7日平均新增用户、活跃用户等,一周内、一个月内的统计量总数,总用户数。
    指定时间区间内(默认30天内每日):
    新增用户、活跃用户、启动次数、累计用户
    折线图,明细数据列表
    Top版本环形图:新增用户、活跃用户、累计用户每个版本占比
    Top渠道环形图:新增用户、活跃用户、累计用户每个渠道占比
    2.用户分析:
    a.新增用户:
    指定时间段、指定渠道和版本,每日新增用户折线图、明细数据表格
    次日存留率折线图、明细
    b.活跃用户:
    指定时间段、指定渠道和版本下,
    活跃趋势、活跃构成、活跃粘度、分时活跃用户、周,月活跃度
    c.启动次数:
    指定时间段、指定渠道和版本下,每(小时、天、周、月)的启动次数
    d.版本分布:
    指定时间段、版本下, 每天新增用户、活跃用户、启动次数折线图
    今日、昨日截至今日版本累计用户(%),新增用户,活跃用户(%),启动次数
    3.留存分析:
    a.留存用户
    指定时间段、指定渠道和版本下,每一个时间段(天、周、月)新用户和活跃用户数在接下来一段时间(天、周、月)的留存数/留存率,以表格形式和折线形式呈现。
    b.用户新鲜度:
    报表展示每天活跃用户的成分构成,并提供用户成分分析控件做进一步的分析。某日的活跃用户来源于当天新增用户、1天前新增用户…30天前新增用户、30+天前新增用户。
    c.用户活跃度:
    报表展现每个天级时间点的当日活跃用户的活跃程度。
    4.渠道分析:
    a.渠道列表:
    指定时间段、指定版本,各渠道新增用户、活跃用户、启动次数
    5.用户参与度
    a.使用时长:
    指定某一天、指定渠道和版本下,单次使用时长分布柱形图,明细表格。
    该天每个活跃用户使用时长分布柱形图、明细表格。
    b.使用频率:
    指定日期,指定版本、渠道,当日、上周、上个月使用次数分布柱形图,明细表格。
    c.访问页面:
    指定时间段(一天、一周、一个月)、指定渠道和版本下,访问页面分布柱形图,明细表格。
    d.使用间隔:
    查看任意30天内用户相邻两次启动间隔的分布情况,并可以进行版本、渠道及分群的筛选。以柱形图、明细表格形式展示。
    6.终端属性:
    a.设备终端:
    指定时间段(一天、一周、一个月)、指定渠道和版本下 ,top10机型、分辨率、操作系统的新增用户/启动次数柱状图、明细表格。
    b.网络及运营商:
    指定时间段(一天、一周、一个月)、指定渠道和版本下 ,各种联网方式的新增用户/启动次数柱状图、明细表格。
    c. 地域:
    指定时间段(一天、一周、一个月)、指定渠道和版本下 ,各省市的新增用户/活跃用户/启动次数柱状图(top10省)、明细表格(省市)。 ↩︎

  2. 所需安装环境为:

    1. jdk1.8.0_151、
    2. mysql-5.7.28、
    3. hadoop-3.2.1、
    4. flume-1.9.0、
    5. azkaban-3.90.0
    6. zookeeper-3.6.1、
    7. hive-3.1.2、
    8. spark-3.0.0
    9. scala-2.11.12
    10. kafka-2.4.1、
    11. (hbase-2.2.5、solar-8.5.2这两个是atlas安装的前置)
    12. atlas-2.0.0、
    13. sqoop-1.99.7

    每个环境的作用:
    数据采集传输:

    • Flume:分布式日志数据汇聚
    • Kafka:实时采集(计算)的缓冲
    • Sqoop:离线批量抽取数据库

    数据存储:

    • Mysql
    • HDFS

    数据计算:

    • Spark

    数据可视化:

    • Echarts

    job任务调度:

    • Azkaban

    元数据管理:

    • Atlas
    ↩︎ ↩︎

以上是关于大数据项目开发进度(实时更新)的主要内容,如果未能解决你的问题,请参考以下文章

大数据项目3(数据规约)

电商大数据项目-推荐系统实战之实时分析以及离线分析

客快物流大数据项目(一百零一):实时OLAP开发

客快物流大数据项目(一百零六):实时ETL处理

客快物流大数据项目(一百零六):实时ETL处理

实时即未来,大数据项目车联网之实时ETL开发的核心逻辑