大数据计算架构三国争霸胜负未明

短短几年时间,大数据这个词便已家喻户晓。但在大数据这个名词被命名之前,人类对数据的搜集与分析已有着悠久的历史。从人工统计分析到电脑/大型机再到今天的分布式计算平台,数据处理速度飞速提高的背后则是整体架构的不断演进。今天大数据架构最火热的莫过于Hadoop,Spark和Storm这三种,而Spark和Storm这两个后起之秀更是抢了不少Hadoop的风头,也让网上逐渐开始有一种声音说Hadoop的日子已经快到头了。但究竟这三者之间是什么关系,未来大数据架构究竟该走向何方呢?

分布式计算架构鼻祖Hadoop

所谓分布式计算过程就像蚂蚁搬家一样,将一个大型任务分割成很多部分,每一台电脑相当于一个小蚂蚁将其中一部分搬走。Hadoop作为分布式系统的基础架构,其重要性不言而喻。Hadoop的数据处理工作在硬盘层面,借助HDFS(分布式文件系统),可以将架构下每一台电脑中的硬盘资源聚集起来,不论是存储计算还是调用都可以视为一块硬盘使用,就像以前电脑中的C盘,D盘,之后使用集群管理和调度软件YARN,相当于Windows,毕竟我们要进行编程首先需要一个操作系统,最后利用Map/Reduce计算框架相当于Virtual Studio,就可以在这上面进行计算编程。从而大幅降低了整体计算平台的硬件投入成本。而这也就是最基础的分布式计算架构。

流数据处理双雄Spark和Storm

所谓流数据处理其实不难理解,比如看网上视频,都是下载一段看一段,然后快结束的时候自动下载下一段。由于Hadoop的计算过程放在硬盘,受制于硬件条件限制,数据的吞吐和处理速度明显不如使用内存来的快。于是Spark和Storm开始登上舞台。Spark和Storm两者最大的区别在于实时性:Spark是准实时,先收集一段时间的数据再进行统一处理,好比看网页统计票数每隔几秒刷新一次,而Storm则是完全实时,来一条数据就处理一条。当然Storm实时处理方式所带来的缺点也是很明显的,不论离线批处理,高延迟批处理还是交互式查询都不如Spark框架。不同的机制决定了两者架构适用的场景不同,比如炒股,股价的变化不是按秒计算的(Spark实时计算延迟度是秒级),在高频交易中,高频获利与否往往就在1ms(0.001秒)之间,而这恰好就是Storm的实时计算延迟度。

混合架构,各显神通

今天大数据的混合架构就像目前云计算市场中风头最劲的混合云一样,成为大多数公司的首选。每一种架构都有其自身的独特优缺点,就像Hadoop,尽管数据处理的速度和难易度都远比不过Spark和Storm。但是由于硬盘断电后数据可以长期保存,因此在处理需要长期存储的数据时还是需要借助Hadoop。不过Hadoop由于具有非常好的兼容性,因此非常容易的同Spark和Storm进行结合,从而满足公司的不同需求。

纵观技术的发展史,我们可以看到,每一项新技术的问世都有着之前技术的身影,伴随着大数据的需求增长,不同的架依然会不断进化,并改进自身的缺点,从而使得自身架构得到进一步的完善。就目前来看Hadoop,Spark和Storm目前远谈不到谁取代谁。