大数据两万年
“老公,我的手机又装满了,没法拍照了啦!”
程序员的正确回答应该是:
A:等我给你清理清理手机垃圾。
B:等我买个新存储芯片给你焊上。
C:...
近些年,很多地球人遇到了同样的问题,电子数据爆发性的增长,超过了单个设备的存储容量极限。
硬盘不够大了!
如果你运营着一家为数十亿用户提供服务的电商网站,它的数据量,即使把硬盘做成磨盘那么大也无济于事。那么,只好买硬盘了,装满一个换一个吧。看着一仓库的硬盘,你清楚的知道这是一个无尽的宝藏,里面记录着每个用户的姓名和地址,记录着用户买的每一双袜子的尺寸,衣服的颜色,他的口味爱好,你知道这是一个无尽的商业宝藏。
然而,每个硬盘里面装的啥?我要找东西去哪个里找?啊这块硬盘咋被老鼠啃了,里面装的啥来着?你绝望的想到,也许两万年后,人类的数据将会刻满地球表面的每块石头,却未必知晓如何利用它们。
两万年后...
“……川陀不只是一个行星,而且是银河帝国二十万星系的心脏。它唯一的功能就是行政管理,唯一的目的就是统治帝国,唯一的产物就是法律条文。“ ---《银河百科全书》
“……毫无疑问在皇帝克里昂一世在位的大部分时期,伊图·丹莫茨尔是帝国政府真正的权力中心。“ ---《银河百科全书》
... ...
“你的那个预测未来的朋友,哈里·谢顿”,皇帝陛下的声音突然从御案后传出来,“嗯...”,飘忽不定的声音停住了,好像忘记了要问什么。
“陛下”,帝国首相,伊图·丹莫茨尔的回答一贯如一的冷漠,衔接的却恰到好处,“我两天前从大学回来,正如我昨天呈上的奏章所言,毫无疑问,陛下将正确的科学问题交给了合适的人选,研究将在川陀大学这个最合适的地方开始。”
“唔”,皇帝没有放下手中的案卷。
“不过预测未来...”
"阿,是的,心灵史学,利用数学方法对社会走向的预测。”皇帝不满的说到,“对个体事件则完全无效”,他扬了扬手中的卷宗,“比如,无法预测帝国档案馆何时会发生火灾。”
“关于这个问题,”首相说,“我从大学的研究那里,确实得到一些有益的启发。”
“唔”,皇帝放下了卷宗,示意说下去。
“是,陛下”,首相微微一躬身,“事实上,帝国档案馆几乎每隔数百年都会发生一次比较重大的事故,而且间隔时间正有缩短的趋势。”
“作为银河中二十万个星系的首都,川陀的主要职责就是行政事物处理,并产生相应的档案。这些档案太多了并且每天都在增加的更多。考虑到帝国已经繁荣稳定一万年以上,并且毫无疑问将会和银河一样万古长存...”
“无论帝国档案馆设计多么周全,成本多么高昂,随着时间的推移,总会产生各种各样的安全隐患;无论设计容量多大,总归会达到存储的上限。一万年以来,除了火灾等事故,帝国档案馆的大规模档案搬迁,馆址变迁,重新设计和重建也有近百次之多。”
“这和心灵史学有什么关系?”
“陛下,心灵史学的基石,乃是帝国数以百兆计的臣民,以及所有臣民的行为数据。只有数据达到了统计学的数量级,方有可能通过统计科学的计算预知整个人类社会的动向;这些数据十分庞大,并且会以惊人的速度不断增长。哈里·谢顿到达川陀大学,所需要解决的第一个问题,就类似于帝国档案馆的问题:如何存储这些收集于银河每一个角落的数据。事实上,他正在数学系筹建一个命名为【大数据(Big Data)】的新专业学科。“
”【大数据(Big Data)】?这个名字有点蠢。不过,这也是我为何要把他安置在川陀大学。近一百年银河中最为强大的计算机主机的研发几乎都是源自那里。“ 皇帝颇有些自得。
”是的,陛下。不过哈里·谢顿认为,无论现在的川陀大学主机如何强大,和帝国档案馆一样,这些数据会累积到单一主机无法存储的量级。到那个时候再升级主机,终究会占用太多的研究预算,这会是大学财政的一个无底洞。“
首相接着说道,”哈里·谢顿设计了一套全新的数据存储系统,称之为【G 文件系统】,为什么称之为 G 他没有明确说明,但其设计思路来源于一份来自于川陀大学图书馆的古代论文手稿。“
”古代论文手稿?“
首相回答:”是的。所用的古语言十分晦涩,具体的年代已经不可考证,甚至无法判断该手稿具体来源于哪个星系,但从目前译出的内容判断,应该是属于计算机蛮荒时代的产物,那时人类还不曾拥有和现在一样强大的计算机主机,甚至无法完整存储行星级数据量的百分之一。“
首相继续说:”据谢顿推测,手稿中的方案应该是为了满足某种行星级大型项目的需要,也许是最早期的行星移民计划中的户口数据。这种项目存储的数据文件都非常庞大;数据一旦保存将很少变化,主要以不断的新增数据为主;数据的使用,以大量的读取为主,也会有少量的随机读取。“
“可以肯定的是,这个项目的数据存储需求,明显超出了当时的计算机主机的存储能力,所以手稿中提出了一个方案:由性能较高的核心主机,和大量的廉价硬件设备构成一个存储集群。”
“大量的廉价硬件设备?虽然不知道这些词在当时具体代表什么含义,听起来就不可靠。” 皇帝皱了一下眉。
”是的,这个方案从设计之初就认为,存储集群内的组件故障是必然发生的现象,就好像每隔几百年帝国档案馆就一定会发生火灾一样,必须加以考虑。“
“唔?”
”这样的一个存储集群中,核心主机被称为主节点(Master),真正存储数据的廉价硬件设备被称为数据块服务器(Chunk Server)。“
*主节点
*数据块服务器
“数据块?”,皇帝问。
”是的,所有的文件都将被分成固定大小的块来存储,这样的块,称之为数据块(Chunk);数据块都存储于这些廉价硬件设备中,因此这些设备被叫做数据块服务器(Chunk Server)。“
”为什么要这样做?分成数据块。“
“这个集群,允许随时加入或者替换不同规格的设备,直接存放数据文件的话,将不得不考虑每个文件大小与单个存储设备容量的匹配问题。因此,将所有文件都切割成相同的,合适大小的块,更方便管理。”
“不可能每个文件都恰好能切成相同大小的块吧?”
“是的,陛下英明。文件最后一块有可能不是完整大小,但是为了便于管理,仍然占用相同的存储空间大小。这样会浪费一点点存储空间,不过相比于管理难度的降低,这种代价是值得的。”
“你说一下,怎么管理的这些数据块?”
”每个数据块,都会由主节点分配一个唯一的标识,并且主节点记录了每个数据块属于哪个文件,保存在哪台数据块服务器的什么位置。”
首相接着补充道:“由于事先假定数据块服务器是不可靠的,所以每个数据块都会被复制多次,比如三份副本,分别存放在其他的设备上,这些设备的物理位置也需要有一定的距离,以防范断电火灾等事故。”
“主节点监视和管理着每台数据块服务器的状态,一旦发现某一台损坏,主节点可以很快查明丢失了哪些数据块的副本,从其他副本中再次复制这些数据块,存储于其他可用的设备上,并更新这些管理信息。这些管理信息被称作元数据(Meta Data)。“
“元数据?”
“是的,陛下。可以认为是管理数据的数据。类似于,书籍的目录。”
"所有的目录,也就是这些所谓的元数据,都只存在主节点上?不还是有容量有限的问题吗。“,皇帝问。
”是的。系统的总存储容量确实仍然受限于主节点的存储容量。但是,由于元数据是非常紧凑的,相比较而言,整个集群能够存储和管理的数据量还是有了非常大的提高。“
”而且所有的操作,都会经过主节点。"皇帝皱起了眉头,“如果主节点损坏了呢?”
“陛下英明。根据手稿中的设计,任何数据的外部使用者,都要采用为这个集群特别设计的终端软件,被称为客户端(Client)。客户端仅仅从主节点获取元数据而已,并且还会缓存相关的元数据一段时间;真正的数据读取,客户端会根据元数据直接找到相应的数据块服务器进行操作,不再经过主节点。“
*客户端
*主节点
*数据块服务器
首相继续补充道:”即便如此,设计上主节点确实必须采用整个集群中性能最强大的最可靠的主机。同时必须要设置一台备份的主节点,复制所有的元数据。当主节点意外损坏时,备份主节点将迅速接管他的功能。虽然这样提高了一些额外的成本,但是和其降低的风险相比,还是值得的。”
"哈里·谢顿目前就打算以川陀大学拥有的几台主机创建主节点及其多个备份;数据块服务器的采购预算由于只针对常规型计算机,和谢顿要处理的数据量相比,成本还是比较合理的。同时他还打算征调整个川陀星系范围内的所有淘汰或闲置的计算机,就此事提出的备忘录,正在首相办公室进行最终的核算,没有问题的话..."
“准奏。“皇帝的语气颇有些欢欣鼓舞,”谢顿,我果然没有看错。听起来确实有一些计算机蛮荒时代的粗放感,倒让我想起开国先祖率军远征银河第四旋臂时的豪迈,当时那个区域的超空间探测器几乎都处于过载状态,然而......”
“是的,陛下。“首相对于这种时候的奏对,显然很是得心应手,”是的,陛下。是的陛下...“
......
首相一躬身后缓步走出御书房,他的脸上没有表情变化。然而,在没有任何人可以看到和感受到的空间中 --- 两万年以来人类智慧和灵感巅峰的产物,首相的正电子脑中 --- 正电子流波涛汹涌,从湮灭一万多年前的历史中翻捡出的古老的文字,正缓慢流淌:
摘要: 我们设计并实现了 Google 文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。 GFS 虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务 ...
2003 年,谷歌公开发表了一篇名为《The Google File System》的学术论文,详细阐述了其为存储海量数据而研发的可伸缩、高可用、高可靠的分布式文件系统,简称 GFS。GFS 和后来谷歌发表的另外两篇论文《Google MapReduce》以及《Google BigTable》一起,被称为”谷歌三宝“,拉开了大数据时代的帷幕。
虽然谷歌没有公开源码,但 Doug Cutting 等人借鉴 GFS 开发出了 Hadoop Distributed File System(Hadoop 分布式文件系统,简称 HDFS);借鉴 Google MapReduce 开发了 Hadoop MapReduce。两者组成了第一代 Hadoop 平台,真正实现了对海量数据的存储以及处理的能力。
第一代 Hadoop:
*HDFS
*Hadoop MapReduce
如果说谷歌的论文仅仅阐述了火药的作用原理,那第一代 Hadoop 平台,就是开源社区提供的免费意大利炮,全世界无数技术团队用它攻城略地,开始抢占大数据时代的商业山头。
Hadoop 在这个过程中不断进化,围绕着它涌现了很多优秀的软件,形成了一个比较完善的开源生态圈。海量数据的处理,对于全世界所有技术团队来说,都有了现成的解决方案。
这让”山寨“一个大数据公司成为了可能。
阿西莫夫在他的书中,借哈里·谢顿之口设想了一门崭新的学科 -- 心灵史学,通过数学建模的方式找到人类社会的发展规律并预测历史的走向。
几十年后,人们惊讶的发现这门空想学科正在雏形渐成,只不过名字叫做,“大数据”。
“老公,我的手机又装满了,没法拍照了啦!”
程序员的正确回答应该是(划重点,这是一道送命题。):
A:等我给你清理清理手机垃圾。
B:等我买个新存储芯片给你焊上。
C:已经下单,新款手机马上到!
评论