4 回答

TA贡献1780条经验 获得超1个赞
Hadoop
并不仅仅是指Hadoop
的计算模型MapReduce
,而是指Hadoop
生态圈,包括HDFS
、HBase
、Hive
等。Spark
也只是替代和丰富了Hadoop
中的计算模型,其运行还需依赖于Hadoop
生态圈的其它部分。所以我觉得如果仅仅是指Hadoop
中的计算模型MapReduce
,确实在某种程度上是过时的(但是也有适合场景)。
感兴趣的话可以看看这篇文章:Spark And Hadoop Are Friends, Not Foes

TA贡献2039条经验 获得超7个赞
目前,Hadoop已经进入2.0时代。它一共有三个组件:HDFS,YARN以及MapReduce。HDFS是分布式文件系统,负责存储输入和输出数据;YARN是分布式资源管理系统,负责调度集群的CPU和内存;而MapReduce是分布式计算框架,是Google为了进行网页排序(PageRank)而设计的, 一种非常通用的编程模型,可以用于编写单词计数, 网页排序(PageRank)等各种大数据处理程序。
Hadoop MapReduce,Spark,Storm等等都是分布式计算框架,分别适用于不同的应用场景。Hadoop MapReduce做离线计算比如日志处理,Spark跑机器学习,Storm做实时流计算。这样说吧, 它们相当于手机上不同的APP, 有着不同的功能。因此,严格来说并没有什么谁替代谁的问题,不同的计算框架适用于不同的应用场景。当然,Spark与Hadoop YARN可以用于完成同一种任务,且Spark执行性能更好,但是Spark更耗内存。因此,Spark并非可以完全替代Hadoop MapReduce,因为有些应用使用Hadoop MapReduce执行时间长一点没有问题,可以节省内存资源。
还有,Hadoop Mapreduce,Spark,Storm以及很多其他分布式计算框架均属于Hadoop生态系统,他们可以跑在同一个Hadoop集群, 共享HDFS和YARN。将这些计算框架比作手机上的APP的话,则Hadoop的HDFS与YARN相当于手机的操作系统。
所以,我的建议是:
Hadoop是大数据入门必须掌握的。因为MapReduce是最基础的分布式计算框架, 其他分布式计算框架比如Spark是依赖它构建,理解MapReudce才能理解其他系统。然后,Hadoop是其他Hadoop生态系统计算框架的运行平台,绕不开的。
根据公司需要学习Spark等其他计算框架,自学仅仅是入门,通过编写实际应用才能真正掌握。
我的博客也许能帮你快速搭建Hadoop测试环境:

TA贡献1808条经验 获得超4个赞

TA贡献1854条经验 获得超8个赞
添加回答
举报