大数据发展史,你都了解吗?
目录
追本溯源 - 大数据技术的诞生
包罗万象 - 大数据概念的理解
蓬勃发展 - 大数据的兴起
砥砺前行 - 大数据的潜力
大数据技术的诞生:
众所周知,大数据不仅是现今IT行业炙手可热的新兴技术,同时也是各类公司致力打造的品牌形象,今天我们就一起来聊一聊大数据的发展历程。
我们现在常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,也就是我们经常提到的“三驾马车”,分别是:分布式文件系统GFS(Google File System)、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。
在2004年的时候,即便是各类行业的独角兽巨头公司,关注的其实仍然还是单机的存储和计算能力,在思考如何提升单机的性能,寻找更贵更好的服务器。
而Google的三篇论文,在当时的时代背景下,犹如一丝清泉,开创了另外一种思维方式:部署一个大规模的服务器集群,通过“分布式”的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。 这样做最大的好处就是,我们其实不需要买很多很贵的服务器,只要把一些普通的机器组织到一起来承载数据的存储和计算。
这就已经非常厉害了,相当于把一个很庞大很艰巨的任务从“一个”很有能力的工作者身上,分摊到“多人组成的”项目组,工作的压力和负担均摊到多人身上,而“某一个人”即使出了问题,也可以把任务分配给其余的人员接替,相当于有一个强大的组织作为他的后盾,这就和我们的工作是一样的,一个人即使能力再强、工作再努力,他的产出总是有限的,而一个人的抗压和承载能力都是有瓶颈的,是远不能和一个巨大的团队相比的。
但是,当时谷歌提出的这种思想,虽然带动了一阵热潮,但是当时并没有过多的大数据技术产生,也并没有什么人把精力投入到相关的研究中去。恰恰在这个时候,一位叫做Doug Cutting的天才程序员,他在开发搜索引擎的时候,恰巧看到了Google(搜索引擎业内领头者)的论文,论文中的思想深深触动了他,于是他根据论文中的理论原理,基于纯粹的Java技术在自己的项目中初步实现了类似GFS和MapReduce的功能。
到了2006年,Doug Cutting将这两部分功能从项目中分离了出来,启动了一个独立的项目专门开发和维护,这就是后来赫赫有名的Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapReduce。2008年,Hadoop正式成为Apache的顶级项目,Doug Cutting本人也成为了Apache基金会的主席,这时候已经有一些互联网大厂,开始使用Hadoop来承载自己公司一定的存储和计算能力,Hadoop开始真正的被大家认知到。
大数据概念的理解:
我们现在讲“大数据”,其实很多时候都不是在讲大数据技术,而是在讲“大数据的概念”。
说到所谓的“大数据的概念”,我觉得应该把“大数据”拆开来解释,也就是“大”和“数据”,然后再融合到一起,其实就能得到大数据的释义。
关于“大”,我个人认为可以从3方面来讲:
第一:字面意义,指“数据量巨大”;
第二:指“数据的类型多种多样,变化多端”;
第三:“数据”会在短时间内,以“爆炸性”的方式迅速增长;
关于“数据”,我们就不讲“什么是数据”了,我们讲一讲数据的产生、数据的存储以及数据的价值:
首先,数据的来源:
无纸化办公+互联网兴起:OA系统、CRM系统(客户关系管理系统)、ERP系统(企业资源管理系统)、财务系统、进销存系统、工厂管理系统…互联网数据、用户行为日志等…
其次,大数据之前数据的存放:
传统行业的软件系统、互联网行业,他们的数据都存放在哪里?2010年之前,当时最火的不是什么所谓的大数据,当时最火的是DBA,Oracle DBA是比较高级的职位,当时公认的都是Oracle是数据库行业的老大,无论是互联网,还是传统行业,数据都存放在Oracle里面,Mysql比较少。
再次,数据的使用:
看数据,最最主要的意义就是帮助公司里的各个层级的员工,了解到这个公司运行发展的方方面面的情况,从而让公司的管理者可以更好的去了解公司,管理公司。
大数据的兴起:
大数据为什么会流行起来?
回答这个问题之前,我们先来看一下大数据前夕的整体环境。
第一,海量数据的产生
互联网行业大兴:
2010年以后,尤其是智能手机普及了以后,大量的人,每天有了大量的时间可以用手机来上互联网,访问互联网公司后台的系统,互联网公司的用户数量直线攀升。单个项目的用户量逐年以10倍的速度递增的情况,在各大型公司普遍存在。
在业务量大增,用户量暴涨的情况下,作为“数据产生的源头”,互联网用户在互联网上的各种操作,产生了“大数据的基础”——“海量的数据”。
第二,数据如何存储?
我们经常能听到关于“I O E”的说法,具体是指:
I(IBM,服务器提供商,他们提供的服务器俗称“小型机”)
O(Oracle,数据库提供商,他们的软件是著名的“甲骨文商业数据库”)
E(EMC,存储设备提供商,他们提供的是“集中式存储”)
在大数据流行之前,花大量的价钱购买服务器和软件,几乎是所有大型公司一段难以忘怀的往事,因为无论是小型机、集中式存储,还是我们前面提到的Oracle数据库,都有两个突出的特点:“贵”、“不是特别好用”。
首先是“贵”:
那时候小型机价格大概是从几十万到几百万人民币;商业数据库软件费用差不多几千万,外加一大笔维护费,光是买机器和软件的费用,就足够让一个大型公司破产了,大多数公司处于一种业务暴涨带来的利润,勉强能够维持设备的采购的状态,非常的痛苦。
然后是“不好用”:
2008-2010年的阶段,各大互联网公司的业务增长实在是太快了,每年都是十几二十倍的增速,IOE虽然都是美国公司,但事实证明外国的月亮也不会更圆,它们的系统并没有经受过服务几亿网民这么大规模的考验,此时已经变得非常难用了。
谁也不会想到,阻碍各大公司进一步发展的最大阻力,不是商场上的博弈,不是政策的变化,而居然是IT基础设施的瓶颈。
第三,数据如何计算?
数据报表从哪出?
我们从数据的集中展现说起:数据分析平台。
2010年以前,在国内用BI系统的公司并不多,当时直接用Oracle出报表、Mysql出报表,都是很正常的一件事情,就是直接写一个巨复杂的大SQL,几百行,几千行,直接查库,基于SSH框架(Struts2 + Spring3 + Hibernate + java系统)写一个小系统,定时调度一下。
如果是数据量相对大一些的,比如库里存放了几十万数据,几百万数据,跑SQL很慢的情况,一般是在每天凌晨的时候,系统没人用,在Oracle上面,耗时几十分钟,甚至一两个小时,跑成功一个大SQL,产出一张报表的数据,第二天早上上班就可以看到相关的报表。
如果数据量很小,几千条,几万条,随时随地,只要领导要看报表,直接点报表系统的一个按钮,然后直接现场执行一条几百行的大SQL到Oracle里去查询出来一张报表,可能稍微慢一点点,大概耗费个几十秒,几分钟。
整体来说,数据计算和产出的速度都不够快,灵活度也非常差。
大数据的前身
根据前面的讲述,我们可以得到这样的结论:
大数据的前身=各种看数据的需求+几百行的大SQL+关系型数据库
危机
计算力系统欠缺的潜在风险 - 脑力不够用了
二十一世纪初期,我们仍然没有自己的操作系统,没有自己的芯片,同样没有自己的计算力系统。所以,购买国外的设备几乎是所有国内大型互联网公司以及国企唯一的选择。
前面,我们已经说到IOE的巨大隐患,虽然使用IOE有这样大的风险,但是各大公司仍然像依赖空气一样依赖他们,为了避免IOE滚雪球式的联动效果,各大公司开始相继上马自己的新的技术架构,用于替代原有的“旧引擎”。
新的发动机
新的技术架构:
新的技术架构,需要满足:“便宜、好用”的基本属性,同时如果可以实现商业化布局,那就可以堪称完美了。
于是,各大互联网公司,逐步开始布局自己的“云计算系统”,这就是大数据流行前IT行业整体环境的概况。
大数据技术的潜力:
开源与自研
1. 用开源的一些软件和技术,研发一个数据计算系统;
2. 基于Java-网络等底层技术,自研一套数据计算系统;
大数据说的通俗一些,其实并没有那么的高大上,无论是基于开源技术还是纯自研,都是要构建一套强大的数据计算系统,用于支撑公司的运营和发展,解决“数据的存储和计算”。
而数据的存储和计算,几乎是每个公司必须解决的问题,所以大数据是每个公司都需要接触和发展的方向,具有相当大的潜力,值得我们不断的学习和投入。
写在最后的话:
后续,我还会继续分享一些大数据的技术,用最普通干练的话语给大家讲解更多的大数据知识,希望对大家有一定的帮助,特此,感谢大家的关注和分享。