文章目录

  • 前言
  • 项目概述
  • 项目进度
    • 第一周0525-0529:
    • 第二周0601-0605:
    • 第三周0608-0612:
    • 第四周0615-0621:(周末加班)
    • 第五周0622-0628:(周末加班)
    • 第六周0629-0705:(周末加班)
    • 第七周0706-0712:(周末加班)
    • 第八周0713-0717:
    • 第九周0720-0725:(完结)

前言

如果你从本文中学习到丝毫知识,那么请您点点关注、点赞、评论和收藏
大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人。从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

    ↩︎ ↩︎

大数据项目开发进度(实时更新)相关推荐

  1. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  2. 大数据项目开发实训报告

                                                大数据项目开发实训 一.总体设计               爬取招聘网站前程无忧:               ...

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

    文章目录 1 实时ETL开发的核心逻辑 1 自定义方法解析json数据 2 实时ETL数据存储 2.1 数据落地HDFS:*StreamingFileSink* 2.1 文件格式 2.2 桶分配逻辑 ...

  4. 大数据项目开发案例_大数据开发相关术语解析

    Java['dʒɑːvə] 当前软件开发行业应用最广.就业量最大的编程语言,在各类编程语言排行榜长期位列第一.是企业软件开发的首选语言,也是Android系统的开发语言. Java吸取了C++语言的众 ...

  5. 大数据项目开发案例_大数据分析技术——项目案例2(房价数据分析上)

    1 二手房房价分析简述 在现在这个社会,房子成为绝大多数人心中难以抹去的痛:不仅在于它的价格高不可攀,也在于我们多少有些囊中羞涩.若不是得益于亲朋好友相助.父母相帮,估计依靠着我们这点微薄的薪水去购房 ...

  6. 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...

    壹 猫眼Top100电影数据分析概述 从这一节开始,我们就综合利用已学到的一些分析技术来尝试做一些比较复杂的实际数据分析项目.在这些实际的项目案例中,我们将会看到一个完整的数据分析流程:数据清理--数 ...

  7. 大数据项目(三)————电商项目介绍(一)

    1.项目介绍 本项目主要用于互联网电商企业中,使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.购物行为.广告点击行为等)进行复杂的分析.用统计分析出来的数据,辅助公司中 ...

  8. 大数据产品开发流程规范_大数据开发步骤和流程

    大数据项目开发步骤: 第一步:需求:数据的输入和数据的产出: 第二步:数据量.处理效率.可靠性.可维护性.简洁性: 第三步:数据建模: 第四步:架构设计:数据怎么进来,输出怎么展示,最最重要的是处理流 ...

  9. 大数据产品开发流程规范_大数据系统开发步骤流程是怎样的

    大数据系统开发步骤流程是怎样的呢?下面来为大家介绍 大数据项目开发步骤: 第一步:需求:数据的输入和数据的产出: 第二步:数据量.处理效率.可靠性.可维护性.简洁性: 第三步:数据建模: 第四步:架构 ...

  10. 实时可视化大数据项目02 -- 项目目录介绍

    1.项目目录结构 后端采用分层架构,前端springBoot整合了前端. 2.目录介绍 2.1.dao 存放的是实体类,基本是封装好的对象,传递给前端的对象. 2.2.service 业务层: 封装数 ...

最新文章

  1. 多通道接收机幅相校准测试系统的设计
  2. Windows下打印utf-8文件
  3. delphi 数字识别_基于STM32单片机的车牌识别
  4. wifi 7都来了?
  5. 共享寒冬中的常青树,2 次获得阿里投资的衣二三“欲隐藏”的数据真相 | 深度案例...
  6. /root/.bashrc与/etc/profile的异同
  7. configure: error: Curl library not foun
  8. zabbix邮件通知,短信通知配置详解
  9. File Manipulation
  10. SQL注入工具-----sqlmap
  11. 动手了!限19天,大米云主机满10送2手慢无!
  12. LINUX下汉化CodeBlocks
  13. winpe下安装linux工具箱,(U盘中安装WinPE、Ubuntu、BT3、CDLinux系统和DOS工具箱等工具的方法.doc...
  14. iPhone屏幕尺寸、statusBar、navigationBar、tabBar高度对比
  15. phonegap app推送新手教程与坑
  16. R语言单因素方差分析及两两比较
  17. 中毒了(QQ群搞笑聊天记录)
  18. 短视频营销的3个重点:KOL化+话题性+深度互动
  19. Python: 向量、矩阵和多维数组(基于NumPy库)
  20. 小乌龟代码提交Gitee

热门文章

  1. XP不能访问Win7共享
  2. Oracle 存储过程简单实例
  3. 树莓派 armv几_如何在具有armv6处理器的树莓派板上安装和使用Java 11和JavaFX 11
  4. delphi 发送html邮件,delphi 发邮件 Delphi发送邮件的源码
  5. 谁是应用软件商店急需的外援
  6. 山寨游戏之超级奥巴马(SUPER OBAMA WORLD)
  7. c语言双人贪吃蛇小游戏代码,关于C 双人贪吃蛇显示的问题
  8. 魔兽登录后 服务器那显示不兼容,魔兽世界服务器不兼容什么意思?魔兽世界服务器不兼容解决方法...
  9. 记,当找不到图片时,显示默认图片
  10. Vue中img的动态src不显示图片