大伙夜以继日地忙了好几天,终于完成大数据采集部分,又花了两天把收集到的数据进行简单的清洗,过滤掉脏数据,正式进入大数据处理的统计与分析阶段。
大数据处理方式一般有两种,一种是基于内存的流式处理,另一种是基于硬盘的存储处理,也就是俗称的批处理。前者的特点是速度快,但是成本高;后者速度虽不及前者,但是容错性较高。因为学校的电脑配置不高,大伙商议后,决定使用批处理。
然而,事情并没有大家想象的简单,使用批处理的第二天就出现了问题。
林夏看着屏幕里一动不动的数据,独自捣鼓了半天,却毫无收获,最后不得不向大张求救:“张师兄。”
大张自电脑后抬起头,“怎么了?”
“程序好像出了点问题,你能帮我看看吗?”
“好的。”
大张放下手中的工作,经过沈盛的座位前,走到林夏身边。后者把大概情况跟他描述了一遍,他点点头,握住桌面上的鼠标。
沈盛抬头看了两人一眼,低头继续工作。
半个小时后,沈盛完成手上的工作,习惯性地朝林夏的座位看了一眼,发现大张还没离开。他不知何时搬了张椅子坐在林夏旁边,两人的眼睛紧紧地盯着电脑屏幕,脸色都不太好。
直觉告诉沈盛,情况有点不对劲。他站起来,走到两人旁边,关心地问:“发生什么事了?”
大张没有抬头,他目不转睛地盯着显示屏,双手飞快地在键盘上敲击,神情严肃:“数据量过大,硬盘无法支撑,电脑卡住了。”
电脑六室并不大,他的话清晰地传到每一个人的耳里。大伙愣了愣,纷纷站起来,过去察看情况。
看着丝毫没有反应的电脑屏幕,沈盛的眉头微微皱起:“问题严重吗?”
“有点麻烦。批处理主要以Hadoop作为处理框架,Hadoop的核心又是MapReduce,而MapReduce的计算过程又十分依赖持久存储,对磁盘空间的占用自然非常大。用某知名IT技术社区里有位老师的话来说,如果将数据比作水,流式处理就好像一道水闸,数据经过闸门会进行筛选过滤,有价值的内容留下,没用的就丢弃;批处理就像是一个水池,数据流进来都储存起来再筛选分析,从中寻找有价值的内容。这些数据会一直留在池里,虽然以后可以继续使用,但是十分占地方。新的数据源源不断地进入,旧的数据却一直堆积,日积月累就会把水池填满,甚至溢出。我以前在数据咨询公司兼职的时候,有次遇到类似的情况,最后公司是通过升级硬盘的方法把问题解决的。”
刘宇森忍不住开口:“可是这些电脑都是学校的,校方不可能允许我们去动电脑的硬盘。退一步说,即使学校允许我们升级硬盘,我们也没有这么多经费啊!”
周思琦想了想,提议道:“要不我们把数据处理脚本修改一下,看情况能不能改善?”
“试试吧!反正现在也没有别的办法了。”
然而,问题远比大家想象的严重。大伙连饭都顾不上吃,把脚本、数据、代码……能改的东西都改了,能试的办法都试了,情况却丝毫没有起色,电脑该卡的时候还是卡住。
窗外的太阳从东边爬到西边,落在教室里的阳光也由淡金色慢慢地变成橘红色,问题却依旧没有解决。
环顾了一遍眼里或多或少都透着疲惫的众人,林夏终于忍不住站起来,说:“这样下去不行,我们去请教吕老师吧?她肯定有办法!”