论文部分内容阅读
随着个人电脑和智能手机的不断普及,以及网络带宽成本的不断下降,在线观看网络视频已经成为人们生活中常见的一种娱乐或学习方式。国内几个著名的在线视频网站每天都会有亿级的访问量,因此会产生大量的用户数据。如何存储和有效的利用这些数据,来支持公司的广告精准营销,用户统计,数据挖掘,效果评估等不同的业务场景,是需要解决的问题。针对此问题,本人所在的实习公司优酷土豆实现了一个DMP系统,即数据管理平台。在技术选型时,主要考虑以下几点:DMP的原始数据量非常大,对于数据处理能力要求高,但是这份数据的生成时效性要求不高。DMP需要有一个实时查询的接口来满足外部业务要求,对所生成的结果数据的操作需要有强大的实时计算技术来支撑。综合上述两点,我们在技术上分别采用了MapReduce的框架和SPARK的计算框架,来实现离线和实时的计算任务。在优酷土豆工作期间,本人主要参与和完成了DMP系统的需求分析,设计,开发,测试以及维护工作。工作内容如下:(1)参与并完成了系统的需求分析,包括功能需求与非功能需求。(2)参与并完成了系统的概要设计,包括系统的总体概要设计,数据预处理功能、数据合并功能、人群筛选与投影功能等功能模块的概要设计。(3)负责并完成了系统多个模块的详细设计与实现,包括标签体系的详细设计,日志解析模块的设计与实现,用户频道偏好挖掘设计与实现,用户偏好Top20子频道的设计与实现,用户广告关键词偏好的挖掘设计与实现,数据清洗模块的设计与实现,Hive中UDF函数的实现,数据合并模块的设计与实现,人群筛选管理接口详细设计与实现,人群投影接口详细设计与实现。(4)负责并完成了多个功能模块的测试用例编写与实际功能测试工作。(5)负责系统的维护与更新,包括自动化脚本的编写,以使各分区数据定时更新。在实现该项目的过程中,主要用到的技术为Hadoop 的 MapReduce框架以及Spark Sql,实现的语言为Java、Hive口shell脚本。使用Git进行版本控制,Maven进行项目管理。本系统目前已经上线,且运行稳定,公司多个业务场景和广告产品都已经做了对接,效果反响良好。