前言

在正式落地谈技术之前,先花一些篇幅说说大数据技术的发展史。我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable(如果大家需要可以留言给我,我可以专门解读一下)。


一、从搜索引擎开始

搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建,在这个过程中,有大量的数据需要存储和计算。当时的大数据其实就是用来解决这个问题的,一个文件系统、一个计算框架、一个数据库系统。

在2004年那会儿,Google发布的论文实在是让业界为之一振,大家恍然大悟,原来还可以这么玩。因为那个时间段,大多数公司在思考如何提升单机的性能,寻找更贵更好的服务器。而Google的思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。

当时Lucene开源项目的创始人Doug Cutting正在开发开源搜索引擎Nutch,阅读了Google的论文后,他非常兴奋,紧接着就根据论文原理初步实现了类似GFS和MapReduce的功能。

两年后的2006年,Doug Cutting将这些大数据相关的功能从Nutch中分离了出来,然后启动了一个独立的项目专门开发维护大数据技术,这就是后来赫赫有名的Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapReduce。

Hadoop发布之后,Yahoo很快就用了起来。大概又过了一年到了2007年,百度和阿里巴巴也开始使用Hadoop进行大数据存储与计算。

2008年,Hadoop正式成为Apache的顶级项目,后来Doug Cutting本人也成为了Apache基金会的主席。自此,Hadoop作为软件开发领域的一颗明星冉冉升起。同年,专门运营Hadoop的商业公司Cloudera成立,Hadoop得到进一步的商业支持。

这个时候,Yahoo的一些人觉得用MapReduce进行大数据编程太麻烦了,于是便开发了Pig。Pig是一种脚本语言,使用类SQL的语法,开发者可以用Pig脚本描述要对大数据集上进行的操作,Pig经过编译后会生成MapReduce程序,然后在Hadoop上运行。

编写Pig脚本虽然比直接MapReduce编程容易,但是依然需要学习新的脚本语法。于是Facebook又发布了Hive。Hive支持使用SQL语法来进行大数据计算,比如说你可以写个Select语句进行数据查询,然后Hive会把SQL语句转化成MapReduce的计算程序。这样,熟悉数据库的数据分析师和工程师便可以无门槛地使用大数据进行数据分析和处理了。Hive出现后极大程度地降低了Hadoop的使用难度,迅速得到开发者和企业的追捧。据说,2011年的时候,Facebook大数据平台上运行的作业90%都来源于Hive。

在Hadoop早期,MapReduce既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由MapReduce自己完成。但是这样不利于资源复用,也使得MapReduce非常臃肿。于是一个新项目启动了,将MapReduce执行引擎和资源调度分离开来,这就是Yarn。2012年,Yarn成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统

同样是在2012年,Spark开始崭露头角。当时AMP实验室的马铁博士发现使用MapReduce进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而MapReduce每执行一次Map和Reduce计算都需要重新启动一次作业,带来大量的消耗。还有一点就是MapReduce主要使用磁盘作为存储介质,而2012年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。Spark一经推出,立即受到业界的追捧,并逐步替代MapReduce在企业应用中的地位。

一般说来,像MapReduce、Spark这类计算框架处理的业务场景都被称作批处理计算,因为它们通常针对以“天”为单位产生的数据进行一次计算,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。因为计算的数据是非在线得到的实时数据,而是历史数据,所以这类计算也被称为大数据离线计算

而在大数据领域,还有另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。这类计算称为大数据流计算,相应地,有Storm、Flink、Spark Streaming等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算

在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像Flink这样的计算引擎,可以同时支持流式计算和批处理计算。

除了大数据批处理和流处理,NoSQL系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。 NoSQL曾经在2011年左右非常火爆,涌现出HBase、Cassandra等许多优秀的产品,其中HBase是从Hadoop中分离出来的、基于HDFS的NoSQL系统。

上面的这些基本上都可以归类为大数据引擎或者大数据框架。而大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。数据分析主要使用Hive、Spark SQL等SQL引擎完成;数据挖掘与机器学习则有专门的机器学习框架TensorFlow、Mahout以及MLlib等,内置了主要的机器学习和数据挖掘算法。

二、结合人工智能

在过去,受数据采集、存储、计算能力的限制,只能通过抽样的方式获取小部分数据,无法得到完整的、全局的、细节的规律。而现在有了大数据,可以把全部的历史数据都收集起来,统计其规律,进而预测正在发生的事情

这就是机器学习。

把历史上人类围棋对弈的棋谱数据都存储起来,针对每一种盘面记录如何落子可以得到更高的赢面。得到这个统计规律以后,就可以利用这个规律用机器和人下棋,每一步都计算落在何处将得到更大的赢面,于是我们就得到了一个会下棋的机器人,这就是前两年轰动一时的AlphaGo,以压倒性优势下赢了人类的顶尖棋手。

再举个和我们生活更近的例子。把人聊天的对话数据都收集起来,记录每一次对话的上下文,如果上一句是问今天过得怎么样,那么下一句该如何应对,通过机器学习可以统计出来。将来有人再问今天过得怎么样,就可以自动回复下一句话,于是我们就得到一个会聊天的机器人。Siri、天猫精灵、小爱同学,这样的语音聊天机器人在机器学习时代已经满大街都是了。

将人类活动产生的数据,通过机器学习得到统计规律,进而可以模拟人的行为,使机器表现出人类特有的智能,这就是人工智能AI。

现在我们对待人工智能还有些不理智的态度,有的人认为人工智能会越来越强大,将来会统治人类。实际上,稍微了解一点人工智能的原理就会发现,这只是大数据计算出来的统计规律而已,表现的再智能,也不可能理解这样做的意义,而有意义才是人类智能的源泉。按目前人工智能的发展思路,永远不可能出现超越人类的智能,更不可能统治人类。

大数据从搜索引擎到机器学习,发展思路其实是一脉相承的,就是想发现数据中的规律并为我们所用。所以很多人把数据称作金矿,大数据应用就是从这座蕴含知识宝藏的金矿中发掘中有商业价值的真金白银出来。

数据中蕴藏着价值已经是众所周知的事情了,那么如何从这些庞大的数据中发掘出我们想要的知识价值,这正是大数据技术目前正在解决的事情,包括大数据存储与计算,也包括大数据分析、挖掘、机器学习等应用。

我眼中的大数据(一)相关推荐

  1. 美国人眼中的大数据法律问题

    2016年1月6日美国联邦贸易委员会(FTC)发布了一份题为<大数据:包容工具抑或排斥工具>(Big Data: A Tool for Inclusion or Exclusion?)的研 ...

  2. 前端人眼中的大数据生态链

    大数据开启了一次重大的时代转型.就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样.大数据正在改变我们的生活以及理解世界的方式,成为新发明和新服务的源泉,它催生出了云计算,云安全等等,描绘出 ...

  3. 国外学者眼中的大数据:在社科研究中的运用尚在探索

    运用大数据的社科研究尚在探索之中 用数据作分析已经成为当前科学研究大趋势.人们常常能够看到自然科学领域学者利用各种各样的数据解决科学难题.然而,社会科学领域学者对大数据的应用,仍在不断探索当中.近期, ...

  4. 我眼中的大数据(五)——Spark

    CSDN话题挑战赛第2期 参赛话题:大数据技术分享 Hadoop MapReduce虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意.Spark因其拥有更快的执行速度和更友好 ...

  5. Hadoop十岁!Doug Cutting成长史+他眼中大数据技术的未来

    上次见到(膜拜)Hadoop之父Doug Cutting是在2年前,2014中国大数据技术大会上.今年Hadoop10岁,刚看到他的Hadoop十周年贺词,感觉时间飞逝.最近CSDN和InfoQ都在制 ...

  6. 你们是不是真的很缺大数据工程师?

    00 缘起 之所以有这个话题,是因为周末加班中午吃饭与一个同行朋友聊起了这个话题,之后再细细地结合一些其他接触的东西,确实是有些感触的. 并且对于行业的一些现状,也的确有些自己的看法,对不对先不论,这 ...

  7. 你们是不是很缺大数据工程师?

    缘起 之所以有这个话题,是因为周末加班中午吃饭与一个同行朋友聊起了这个话题,之后再细细地结合一些其他接触的东西,确实是有些感触的. 并且对于行业的一些现状,也的确有些自己的看法,对不对先不论,这玩意儿 ...

  8. 大数据运维实战第一课 大话 Hadoop 生态圈

    你好,欢迎来到<大数据运维实战>专栏. 入行以来,我从事大数据运维也有十多年了,期间我做过系统运维.DBA,也做过大数据分析师,最后选择了大数据运维方向,曾设计并管理超过千台.PB 级的数 ...

  9. 百分点技术负责人:我们为什么需要大数据操作系统

    去年9月,百分点公司发布了"全球首款"大数据操作系统BD-OS(基于Lambda架构).日前,百分点技术副总裁刘译璟和百分点BD-OS产品高级研发总监线刘国栋接受CSDN记者采访, ...

最新文章

  1. Liferay7 BPM门户开发之11: Activiti工作流程开发的一些统一规则和实现原理(完整版)...
  2. 解决在ESXi的虚拟化环境中的FreeNAS里Jails插件无法被访问到的问题
  3. WCF异常:HTTP 无法注册,另一应用程序正在使用 TCP 端口 80
  4. HDU 6249 Alice’s Stamps(dp)
  5. 2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础
  6. linux命令之less 命令
  7. unset MAILCHECK
  8. 《Head.First设计模式读书笔记》之设计原则一、二和三
  9. 【英语学习】【Daily English】U02 Daily Routine L02 I go to the gym every other day
  10. MySQL中Join算法实现原理通俗易懂
  11. java检测安卓程序退出_java – 退出应用程序时的Android停止服务
  12. 发现gmail有邀请权了。有谁需要,先送5个。
  13. 【已解决】离散数学项目工序表转换为网络图(完整步骤版)
  14. 首个智慧零碳码头:Hightopo参与天津中远海运金风智慧能源管控平台建设
  15. 【程序设计训练】1-7 F1方程式冠军
  16. matlab正序零序负序,史上最完美的图形和公式带你搞懂正序负序零序!
  17. Unity性能优化方法总结
  18. OpenCV图像处理学习二十,图像直方图均衡化原理与实现
  19. 学习软件测试的一天(11.4)
  20. 字节跳动的真实工作体验

热门文章

  1. 鸿蒙和ios流畅对比,鸿蒙OS对比iOS,华为再次“超越”,流畅度大幅领先苹果!...
  2. 列位置CDays列位置
  3. 苹果发布会MacBook Pro/AirPods 3 M系最强芯片来炸场!
  4. 太阳神三国杀学习第一步--编译并运行(qt5.7.0+vs2015)
  5. 解决Django报错:SQLITE 3.8.3 OR LATER IS REQUIRED
  6. mk突变点检测_气候突变检测
  7. XV Open Cup named after E.V. Pankratiev. GP of Siberia-Swimming
  8. [学习笔记]黑马程序员-Hadoop入门视频教程
  9. 日裔美国人推出「推特观察」twitter排行榜,10小时制作10小时爆红
  10. php仿果壳网,模仿,令我们更亲近