随着互联网的快速发展,企业中业务的类型和规模也在逐渐地增加和变大,企业的业务中又包含有许多环节。在以上背景下,企业通过用户的行为收集用户的数据,由此而带来就是企业的业务数据井喷式的增长,业务数据已达TB级甚至更上。怎样对海量数据进行有条理地管理以及在其中提取有价值的信息成为现代企业所面临的问题。这使得企业的各级人员逐渐从数据的统计转变到面向主题式的信息统计,进而得到有价值的信息支持企业的决策。
本文在研究学习了数据仓库技术、Hadoop生态系统、数据仓库的基础框架Hive、新型查询系统Impala和HTML5技术的基础上,设计并实现了大数据量下的业务管理与报表系统,具体的工作内容如下:
(1)在对大数据量下的业务管理与报表系统需求分析的基础上,得出需要对海量数据进行处理的需求、PC端实现管理的需求、移动端实现便捷访问的需求。在以上的需求下,提出基于Hadoop+Hive+Impala的数据处理与查询方案,在PC端以业务模块管理为中心,在移动端使用HTML5技术结合Echarts的数据可视化方式,设计和实现以业务管理和报表展示为核心功能的系统方案。
(2)针对海量数据的备份以提高系统容错性的问题,本文对Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)副文本放置策略的原理进行分析。HDFS默认的副文本放置策略,极易造成节点的副文本放置不均衡。对副文本放置策略进行改进,以达到集群中节点的负载均衡。
(3)针对移动端跨终端的显示问题,本文对混合适配和根元素字体相对单位(Font Size of the Root Element,REM)的适配方案进行分析、对比以及改进。混合适配以文字流式、控件弹性、图片百分比缩放为主。REM适配则通过当前设备的屏幕尺寸来设置网页文档的根元素的大小,来达到终端适配的效果。在不同的设备下,对两种适配方案进行效果的比对,选取效果好的适配方案。针对不同系统下字体放大的显示问题,对选取的方案进行改进,处理字体放大的问题。
(4)针对海量数据的查询以实现实时性查看业务数据的问题,本文对Hive和Impala查询引擎进行分析和对比。Hive查询过程中依赖于Hadoop,以面向数据的批处理为主。Impala抛弃了MapReduce,使用类似于传统的数据库技术MPP。在原理分析对比完成之后,对二者进行海量数据查询的实验对比。在不同的数量级以及不同的查询条件下,完成数据的查询,对实验的结果进行比对,选取效率更高的查询引擎。