技术丨从Hadoop到Spark,看大数据框架发展之路

谈到大数据框架,不得不提Hadoop和 Spark,今天我们进行历史溯源,帮助大家了解Hadoop和Spark的过去,感应未来。

在Hadoop出现前人们采用什么计算模型呢?是典型的高性能 HPC workflow,它有专门负责计算的compute cluster,cluster memory很小,所以计算产生的任何数据会存储在storage中,最后在Tape里进行备份,这种workflow主要适用高速大规模复杂计算,像核物理模拟中会用到。

HPC workflow在实际应用中存在一些问题,这些问题促进了Hadoop的出现。

首先如果想对大量进行简单计算,比如对Search logs 进行“what are the popular keywords”计算,这时是否可以用HPC workflow?当然可以,但却并不适合,因为需要做的计算非常简单,并不需要在 high performance compute cluster中进行。

其次由于数据量大,HPC workflow是I/O bound,计算时间只有1个微秒,但剩下的100个微秒可能都需要等数据,这时候compute cluster就会非常空闲,因此HPC同样不不适用于 specific use。

另外HPC主要在政府部门、科研等领域使用,成本高昂,不适合广泛推广。

如果不能把数据移到计算的地方,那为什么不转换思维,把计算移到数据里呢?

所以Google在2003至2006年发表了著名的三大论文——GFS、BigTable、MapReduce,解决怎么样让framework 挪到有数据的地方去做,解决了数据怎么存储,计算及访问的问题。

在Google 发出三大论文后,Yahoo用相同的框架开发出JAVA语言的project,这就是Hadoop。Hadoop Ecosystem在十年多时间发展的如火如荼,其核心就是HDFS,Mapreduce和Hbase。

HDFS很好地实现了数据存储的以下特性要求:

  • Cheap
  • High availability
  • High throughput
  • High scalability
  • Failure detection and recovery

大家从图中可以看到HDFS数据读取和写入的过程,这个Architecture非常稳定,当数据量越来越大时Namenode从一个发展为多个,使内存增大,产生了Namenode Federation。

数据存储已经实现,那如何进行计算呢?

如果有1PB size log,当需要计数时, 一个machine肯定无法计算海量数据,这时候可能需要写Multi-threads code,但也会存在进程坏了,性能不稳定等问题,如果Data Scientist还要写multi-threats程序是非常浪费时间的,这时候Mapreduce 就应运而生,目的是让framework代替人来处理复杂问题,使人集中精力到重要的数据分析过程中,只需要通过code Map和Reduce就可以实现数据运算。

让我们来思考下:在一次Mapreduce中至少需写硬盘几次?

至少3次!

开始从HDFS中读取数据,在Mapreduce中计算,再写回HDFS作为 Intermediate data,继续把数据读出来做reduce,最后再写回HDFS,很多时候做meachine learning需要不断迭代,一次程序无法算出最终结果,需要不断循环。

循环过程一直往硬盘里写,效率非常低,如果把中间数据写入内存,可以极大提高性能,于是Spark出现了

当把数据从HDFS中读出来到内存中,通过spark分析,Intermediate data再存到内存,继续用spark进行分析,不断进行循环,这样Spark会很大地提高计算速度。

Spark在2009年由AMPLab开发,吸取了很多Hadoop发展的经验教训,比如Hadoop对其他语言支持不够,Spark提供了Java,Scala,Python,R这些广泛受到Data Scientist欢迎的语言

那Spark与Hadoop的区别有什么?

  • Spark比Hadoop使用更简单
  • Spark对数据科学家更友好(Interactive shell)
  • Spark有更多的API/language支持(Java, python, scala)

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2017-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

大数据分析师为什么需要学习Spark?

作者 CDA 数据分析师 Spark这套速度极快的内存分析引擎与以往的大数据处理框架相比具有诸多优势,从而能够轻松地为大数据应用企业带来理想的投资回报。Sp...

2625
来自专栏PPV课数据科学社区

【学习】如何从菜鸟成长为Spark大数据高手?

Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算...

36210
来自专栏灯塔大数据

大数据赛道上的单挑:MapReduce与Spark到底谁快?

? 通常人们认为Spark的性能和速度全面优于MapReduce,但最新的对决显示MapReduce在某些方面也有胜场,而且数据规模越大优势越大。 Apach...

3706
来自专栏大数据

Spark是否可以完全取代Hadoop

谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。然而,最近业界有一些人正在大张旗鼓的宣扬Hadoop将死,Spark将立。他们究...

40310
来自专栏CSDN技术头条

Apache Spark新方向:深度学习和流式数据处理支持

6月5~7日,Spark Summit 2017 在美国旧金山举行。来自 Databricks 的 Matei Zaharia、Michael Armbrust...

2256
来自专栏大数据文摘

Hadoop创始人Doug Cutting谈未来大数据的技术

24810
来自专栏腾讯大数据的专栏

相比Hadoop,如何看待Spark技术?

之前看Spark的评价,几乎一致表示,Spark是小数据集上处理复杂迭代的交互系统,并不擅长大数据集,也没有稳定性。但是最近的风评已经变化,尤其是14年10月他...

1819
来自专栏陈湘玲的专栏

生儿育女的算法应用

有没有设想过,生活中突然多了个孩子会是什么体验? 如何更好Handle新身份,用科学的理论武装自己? 不妨看一下这篇不像攻略的攻略,探索新领域带来的乐趣。

1.7K6
来自专栏华章科技

Uber的大数据之道

原文网址:http://mp.weixin.qq.com/s?__biz=MzA3NTM4NDE2Mw==&mid=2649545686&idx=1&sn=4a...

962
来自专栏CSDN技术头条

Cloudera旨在以Spark取代MapReduce作为默认Hadoop框架

Apache Spark内存计算框架更接近于Apache Hadoop,Cloudera今天宣布它正努力地使Spark取代默认的Hadoop数据处理框架。 “虽...

2069

扫码关注云+社区

领取腾讯云代金券