论文部分内容阅读
随着移动互联网和物联网技术的蓬勃发展,人们从网络上获取信息的方式越来越丰富,同时向网络里传播的信息也越来越多,每时每刻都有巨量的数据产生。在分布式技术日益成熟的今天,海量数据的存储管理难题已经通过分布式文件系统得到较好的解决,对海量数据中信息的检索查找,Hadoop、HBase等技术也已能解决大部分的业务场景需求。但是人们对科学的追求永无止境,能不能比之前更进一步,追求更实时地对数据进行处理分析已经成为所有领域的共同愿望。大量有价值的知识和潜在的规律信息被蕴藏在数据中,这些数据的价值会随着时间的流逝而减少,怎么有效接收管理这些数据并快速分析,发掘计算出数据背后的信息,实现实时统计、预测和决策等功能,成为现在重大的发展机遇与研究热点,亟需一个高效快速、稳定、高吞吐量的实时分析处理系统去对来自各个数据源的数据进行高效、实时、准确的统计分析。现在大数据的类型越来越复杂多样,业界内通俗的解决方案是针对不同的业务场景和数据类型,专门开发设计不同的处理子系统,例如实时流分析使用Storm、离线数据分析使用Hadoop,机器学习要建立额外的模块等,然后通过消息队列、缓存等技术把这些子系统编排成一个大企业型系统。这样的做法虽然能在生产实践中应用,但是明显学习和研究成本巨大,缺乏统一的计算系统平台,使得开发者难以维护和扩展由这么多套技术体系融合而成的系统。针对上述需求和问题,本文设计了基于Spark的通用型数据实时分析处理系统,主要包括新型ETL和实时处理引擎模块,致力于实时性能比传统Hadoop Reduce技术更优的数据计算,能对异构数据源进行采集并实施快速计算,同时具备着通用性、稳定性,集实时流计算、快速批处理计算、机器学习等于一身,将各种数据计算类型大一统。而且设计上吸收了大数据生态圈内许多例如Kafka和Redis等优秀技术的思想,开发者只需要面对一套技术框架和简单的数据流向,就可以轻松实现实时数据处理业务,减轻了系统复杂性和维护负担,同时具备可扩展性,针对数据倾斜,提出了优化策略。在系统构建部署方面,基于Docker容器技术、Kubernetes容器应用编排技术,使得系统集群具备弹性伸缩、高资源利用率、资源监控、快速部署和移植等特性。