论文部分内容阅读
多酷游戏是百度游戏事业部独立出来的公司,由于先前的业务已经不满足于日益增长的需求,公司领导决定重新梳理公司的业务,并且重建更清晰简洁的数据调度平台与数据展示平台。这次任务主要实现先前百度游戏事业部各种渠道游戏的基础数据的ETL 以及数据展示功能。先前百度游戏事业部的业务不断扩张,现有的集群以及技术不足以处理越来越多的T级数据,尤其独立公司以后,业务更要与之前相比独立、解耦。随着公司各种渠道的游戏不断增加、业务不断改进、与外部的合作不断增加、数据量越来越大、数据的维度不断扩展,对于数据的获取和处理速度,以及对于数据的利用包括分析和预测等的需求,尤其是对于数据存储的需求不断增加。因此,我们决定用新的数据处理技术来创建新的数据平台。项目希望此平台能够满足各渠道游戏的运营人员的各种数据分析需求。在数据处理和存储、展示部分,项目采用主流的Hadoop和Spark来做数据的处理和存储,最终的报表采用轻便的MySQL数据库来存储,采用PHP语言和CI框架来快速实现前期的数据展示功能,在这一部分,本文通过比较有代表性的数据表:今日概况和今日实时概况来阐述。在数据的实时查询和HDFS以及Hive的可视化操作部分,我们考虑到以后的需求和技术的提升会改动前端与后台,所以在设计这一功能时,需要将前端,即查询平台Web端,和后台,即查询平台的访问后台,与实时查询提供者SparkSQL的耦合性达到最低,因此项目采用Thrift来实现这一需求,在Thrift Server中定义查询平台以及可视化操作的所有服务,再由平台后端来调用这些服务,在平台的搭建上,项目采用Tomcat容器。同时由于集群的计算资源有限,我们需要将ETL流程进行一个优化步骤,使得ETL的整体计算量平均分布到凌晨一点到上午九点的所有时间段,避免集群拥堵的情况,节省计算资源,在这一部分项目采用了调度问题常用的算法:遗传算法,并且在需要实现每天定时启动算法检查ETL流程是否更新,再决定是否重新计算新的流程。目前系统已上线并且正常运行,为每日的运营人员分析、公司领导决策提供了所有游戏的概况以及更细维度的分析,得到了同事的广泛好评。实时查询功能极大提高数据开发效率,ETL优化显著提高集群的利用率。