大数据学习笔记-浅谈我对大数据的理解

122 阅读5分钟

在古时候,人们用牛来拉重物。当一头牛拉不动一根圆木时,人们从来没有考虑过要想方设法培育出一种更强壮的牛。同理,我们也不该想方设法打造什么超级计算机,而应该千方百计综合利用更多计算机来解决问题。

“我们生活在一个数据爆炸的时代。”相信这句话大部分人都听说过。十年前,我们在互联网上的痕迹,也许只有QQ资料与聊天记录,和论坛发表的帖子。十年之后,电商网站的购买记录、音乐软件的收藏,播放列表、外卖订单、手机记录的运动轨迹、“考研网站”的浏览记录等等,我们每个人每天都会产生大量的数据。每个人产生的数据量,乘以世界上的人口数,这些数据绝对可以撑得上是海量数据。而且要知道,世界上的信息不只是这些,人类出版过的书籍、发表过的论文、扫描过的艺术品……

每年被创建、采集或是复制的数据集合就是全球数据圈,2018 至 2025 年全球数据圈将增长 5 倍以上。 IDC 预测,全球数据圈将从 2018 年的 33ZB 增至 2025 年的 175ZB。

175ZB是什么概念呢,175ZB = 1024 * 175 EB = 1024 * 1024 * 175 PB = 1024 * 1024 * 1024 * 175 TB。粗略的估算一下,是1800亿个TB。京东上的普通硬盘最大容量是8TB,存储下一年新增的数据,需要234亿块硬盘。京东上给出的硬盘体积是147101.626.1mm,鸟巢的建筑面积是25.8万m³,相当于6.6亿块硬盘码在一起的大小。这么多的硬盘,放在一起约等于35个鸟巢的大小! 现在,一个中小的互联网公司,数据量上PB级也不是什么困难的事情了。所以在数据量越来越多的情况下,海量数据的存储与计算需求,就是大数据技术产生的驱动了。

问题在哪里?

这个问题看起来很好解决,堆硬盘不就行了? 但是问题没有那么简单。硬盘的存储容量近年来不断攀升,但是与此同时,数据传输的速度却没有得到对应的增长。1990年,一个普通硬盘可以存储1370M的数据,传输速度为4.4MB/s,只需要5分钟就可以读完硬盘中所有的数据。而在今天,一个1TB的硬盘,数据传输速度约为100MB/s,读完整个硬盘至少需要2.5小时。固态硬盘的传输速度会高于机械硬盘,但是与存储容量与数据量的爆炸性增长来说,依然是瓶颈。比如我是一个电商网站,我要看一下去年最受欢迎的货物,来决定明年主要对用户推荐什么,年底开始勤勤恳恳的读取上一年的数据,等分析出结果,半年过去了,的出来的结果就没有了任何意义。更何况如今的推荐系统都是千人前面,所以大数据的发展,远远不是单纯的堆积硬盘那么简单。

如何解决呢?

  • 存储 一块硬盘的读取速度优先,如果我们同时读取多块硬盘呢?假设我们有1TB的数据,把这些数据,分别存储在10块硬盘上,同时读取的,这样理论上读取的速度会快上10倍。而现在万兆网络的理论速度是1250MB/s,可以赶得上12.5块机械硬盘同时读取。世界上最流行的大数据框架非Hadoop莫属了。Hadoop自带了一个分布式文件系统HDFS,采用的就是集群存储的方式。说白了就是将数据分块,存储到多台电脑上,当你需要数据的时候,HDFS就会去不同的机器上,把所需要的数据块全都读取出来,提供给客户端。
  • 计算 同样,解决计算的关键,也是分布式。数据量过大的时候,机器不可能把所有的数据都加载到内存中,再进行计算。无论是机器性能,还是计算时长,都是不可接受的。大数据集群,其实就是由很多服务器组成的集群,每一台服务器都是一台电脑,都拥有计算能力,那我们把一次大的计算任务拆分,放到不同的服务器上去计算,最终通过网络将计算结果汇聚起来,得到最终的结果,充分利用集群的性能。

我的一点点想法

原理说起来似乎很简单,就是把存储和计算都分给不同的计算机去做。但是由于分布式系统引入了网络编程,并且还有资源调度等问题,所以大数据的底层,实际上比想象的复杂得多。好在已经有了很多的工具出现,屏蔽了底层的复杂逻辑,提供了简单易用的接口,让大数据入门门槛越来越低,可以让我这样的小白体验大数据的神奇。