本文首发微信公众号:二进制社区,转载请联系: binary0101@126.com
现在处于大数据的时代,各行业在数字化变革过程中,积累了海量的数据,为了从这些数据中获取更多的商业价值和辅助做出更有建设行的商业决策,大数据的计算是当前非常火热的技术领域,本文就大数据计算(分布式计算)的发展历史做一下分析和回顾。
分布式存储
数据计算首先依赖于数据存储,首先你要能存的下大数据。传统的文件系统是单机的,不能横跨不同的机器。当数据达到TB/PB级时,海量数据存储需要变更,由次发展出了Hadoop生态,其中包括分布式文件系统:HDFS(Hadoop Distributed FileSystem)。
HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样,HDFS为你管理这些数据。
分布式计算
存的下数据之后,你就开始考虑怎么处理数据。虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成TB上PB的数据(很大的数据哦,比如整个东京热有史以来所有高清电影的大小甚至更大),一台机器慢慢跑也许需要好几天甚至好几周。
对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它必须在24小时之内跑完这些处理。那么我如果要用很多台机器处理,我就面临了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等。
分布式计算 - 批处理引擎
第一代计算引擎
MapReduce,采用了很简化的计算模型,只有Map和Reduce两个计算过程(中间用Shuffle串联),用这个模型,已经可以处理大数据领域很大一部分问题。
图1 第一代计算引擎
MapReduce的设计,采用了很简化的计算模型,只有Map和Reduce两个计算过程(中间用