JobPlus知识库 IT 大数据 文章
你清楚大数据框架中的hadoop与spark是如何演变发展的吗

大数据火爆程度不言而喻,而提及大数据就无法避免hadoop和spark这两个框架,但是,对于hadoop与spark这两者的关系你了解多少呢?对于二者的概念你都清楚吗?


Hadoop Ecosystem在十年多时间发展的如火如荼,其核心就是HDFS,Mapreduce和Hbase。HDFS很好地实现了数据存储的以下特性要求:便宜、高可用性、高吞吐量、高扩展性以及故障检测与恢复。大家从图中可以看到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分析,Intermediatedata再存到内存,继续用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)。

关于大数据中hadoop与与spark两种框架并不一定要分出谁强谁弱,我们只要清楚二者的具体应用场景将其合理的应用,那就Ok啦。大数据框架还在不断的完善,也在不断的进步,所以,无论是求学者还是从业者,坚持学习的心态一定不能改变。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
189人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序