大数据培训之大数据框架从Hadoop到Spark详解

2018-02-06 13:38:03 688浏览

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

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



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

首先如果想对大量进行简单计算,比如对Searchlogs进行“whatarethepopularkeywords”计算,这时是否可以用HPCworkflow?当然可以,但却并不适合,因为需要做的计算非常简单,并不需要在highperformancecomputecluster中进行。

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

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

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

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

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



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

便宜

高可用性

高吞吐量

高扩展性

故障检测与恢复



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



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

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



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

至少3次!

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

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



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



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


那Spark与Hadoop的区别有什么?

Spark比Hadoop使用更简单

Spark对数据科学家更友好(Interactiveshell)

Spark有更多的API/language支持(Java,python,scala)



以上就是关于扣丁学堂大数据培训之大数据框架从Hadoop到Spark详解,最后想要了解更多关于大数据发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的大数据视频教程系统,通过千锋旗下金牌讲师在线录制的大数据视频教程系统,让你快速掌握大数据从入门到精通大数据开发实战技能。扣丁学堂大数据学习群:209080834。



扣丁学堂微信公众号



关注微信公众号获取更多学习资料



查看更多关于“大数据培训资讯的相关文章>>

标签: 大数据分析 大数据培训 大数据视频教程 Hadoop视频教程 大数据开发工程师

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号