最近对大数据感兴趣,后面想往这方面发展,hadoop是不是过时了,应该深入学习spark?
因为也在上班,时间有限,担心花了时间学习hadoop后,公司却都不使用了,
因为了解到现在公司都在搞spark,因为是内存运算,效率会搞很多,
往过来人解惑,感谢!!
天蓬老师2017-04-18 09:24:34
Hadoop
并不仅仅是指Hadoop
的计算模型MapReduce
,而是指Hadoop
生态圈,包括HDFS
、HBase
、Hive
等。Spark
也只是替代和丰富了Hadoop
中的计算模型,其运行还需依赖于Hadoop
生态圈的其它部分。所以我觉得如果仅仅是指Hadoop
中的计算模型MapReduce
,确实在某种程度上是过时的(但是也有适合场景)。
感兴趣的话可以看看这篇文章:Spark And Hadoop Are Friends, Not Foes
迷茫2017-04-18 09:24:34
目前,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测试环境:
基于Docker搭建Hadoop集群之升级版
阿神2017-04-18 09:24:34
hadoop是分布式计算的基础设施。Spark最多只能代替Hadoop MapReduce。很多大数据技术工具都基于HDFS和MapReduce,包括HBASE Hive Sqoop kafka等。当然做开发直接学习Spark更高,入门简单
阿神2017-04-18 09:24:34
学习Hadoop和学Spark不冲突,目前大部分公司在使用Spark的时候,数据存储还是放到Hadoop HDFS上的。Spark SQL和Hive的都是可以用类SQL,是相通的。