分享我的本科毕业论文,欢迎指教。
摘 要
大数据时代已经到来,面对呈几何倍增且来源多样的海量数据,企业需要运用各种数据处理分析技术从中获取需要的有价值的信息。而基于大数据的四V特性,相关机构从海量数据中提取信息面临着原始数据无规则、非结构化、不完整等各种问题。这些带有各种质量问题的数据无疑增加了企业准确获取信息的难度,进而导致一系列不必要的决策失误。若能在数据处理之前对这些数据进行预处理操作,去除或纠正各种质量问题,则在无形中创造了巨大的价值。应时代的发展和企业的需求,大数据预处理技术孕育而生并受到业界重视。
本文采用Spark、分布式、SpringBoot等技术,利用SparkStream作为流数据计算引擎,设计及实现了一个基于Spark的交互式大数据预处理系统。本文在基于需求分析及当下热门技术的遴选上,着重论述了集群运算环境搭建、数据采集、流处理、Web数据展示等模块的设计与实现。该系统能够在交互式预处理的基础之上对数据做进一步的数据分析操作,并将结果数据借助图形化工具友好的展示给企业,让相关管理层能够更快更好更准确地做出决策。
关键词:大数据预处理系统; 分布式; 流处理; Spark
目 录(章节传送门)
第1章 绪 论
- 课题研究背景
随着Web技术的兴起,人们有越来越多的机会浏览网页,为了更好的分析用户行为,企业往往会将相关站点的访问信息采集记录进而整理成日志,这些日志数据对于某些行业如电商来说具有重要价值。日志数据的生成是源源不断的,随着时间的积累将越积越多。企业在需要根据当前阶段用户访问信息进而及时作出决策的情况下,较好的方式就是对这些日志信息进行实时采集处理。然而,现实世界中各站点的日志数据格式多样并且往往存在很多数据是脏的、不完整的、不一致的,这些数据可能导致操作代价昂贵、决策制定失败甚至错误。为了解决这个问题,引入数据预处理技术及时对数据进行清洗、规约、集成等一系列操作,进而得到合乎企业需要的统一的日志数据信息。而在上述运用场景下,传统数据预处理技术并不能胜任。面对大数据所带来的挑战,Spark提供了丰富的操作类型,且由于其是基于内存的迭代计算,不用将中间结果持久化至磁盘,故而很大程度上的提高了数据处理效率;此外SparkStream能够实时快速地处理流数据,很好的满足了企业实时处理日志数据的需求。
- 课题研究的目的和意义
本课题研究的目的是设计和开发一个交互式大数据预处理系统,该系统以海量数据场景下web日志数据的实时采集、处理、图形化展示等为应用背景,基于sparkStream流计算开发出一个web访问日志在线实时处理反馈系统,通过Echarts数据图形化工具实时展示web访问客户群的地理分布,能够让企业更好的获取相关决策信息。
系统主要意义体现在如下几点,交互式操作:由于spark是基于内存的迭代式运算,在进行海量数据实时预处理时相对传统数据预处理有更快的计算速度,可以将处理结果在用户可接受的周转时间内进行反馈,进而使得用户与系统有了实时交互操作的前提;此外基于Echarts图形化数据展示的web页面可提供给用户简单方便的数据操作。高可靠性:利用zookeeper等工具可搭建出多层次高可用集群。以spark层为例,在此可设置启动多个master节点,进行数据运算服务时即使活跃master节点宕机也可在几秒内由另一台备用master接替相关服务进程,确保了数据服务的高可用。多样化数据集成:系统可对不同的数据格式或数据源进行采集、规约成目标数据。
综上所述,本系统充分考虑到用户的操作方便性及数据反馈实时性,用户只需点一点鼠标就能够在几秒内看到想要数据的图形化展示,在这个时间就是金钱的时代里无疑有了更多的博弈优势。
- 本文的研究内容
本文的主要研究内容是以下五个方面:
- 实现高可用集群搭建:传统的单点高性能服务器除了价格昂贵亦无法满足当下快速增长的数据存储运算需求,在此情况下无论是从经济还是可靠性考虑,基于分布式技术搭建集群是很好的选择。
- 实现实时数据采集:利用kafka工具模拟实现分布式日志采集系统。
- 实现流计算:对kafka采集的数据进行预处理、聚合、集成等系列操作。
- 实现交互式:流计算结果数据借助图形化工具获得简单的数据交互操作。
- 实现系统的易维护性和易操作性。
- 实现系统运行稳定性、安全性。
- 本文的组织安排
第1章对本课题的研究背景、目的和意义进行了简明的介绍。
第2章对本课题所应用到的相关技术和理论基础作一个简要的介绍。
第3章介绍了系统需求分析和总体设计,其中还包括系统的功能模块图。
第4章介绍了集群搭建由来与实现,主要为各支撑软件平台的环境配置问题。
第5章介绍了系统主要功能模块的详细设计与实现。
注:文中涉及代码参数皆采用如propertiesUtil进行封装,在此为了更好的阅读效果而直接写死。