在Hadoop 和Spark之间如何取舍?MapReduce和Spark的区别是什么样

时间:2017-12-21 15:00:02   浏览:次   点击:次   作者:   来源:   立即下载

谢邀,这个问题题主没有说清楚场景呀。

我们首先得明白Hadoop和Spark的区别及联系。

Hadoop主要由HDFS + YARN + MapReduce③个核心组件组成,HDFS是①个文件系统,负责分布式存储;YARN是Hadoop自带的①个通用的资源管理框架,用来对跑在集群上的Application进行资源分配及管理;MapReduce是①个分布式计算框架,跑在YARN上,配合HDFS用来做分布式数据计算。

Spark是①个分布式计算框架,相当于MapReduce的改进版,支持基于内存的迭代计算,大多数情况下Spark要搭配Hadoop来处理HDFS上的数据。

由此来看,如果题主仅仅用来做海量数据存储,无疑只能选Hadoop了,Hadoop的HDFS可以看作是业内的分布式存储标准了,而Spark只能用来跑计算无法取代Hadoop。

如果涉及到HDFS上的数据处理,那么Hadoop + Spark是最佳选择。相比MapReduce,使用Spark处理数据不仅可以得到①⓪倍以上的性能提升,而且Spark的RDD相关API丰富且支持SQL对数据做处理(此外还支持python 、R),MapReduce在开发上简直弱爆了。

\", \"extras\": \"\", \"created_time\": ①⑤⓪⑨①⑨⓪⑥②⓪ · \"type\": \"answer

①.编程方面

hadoop主要是两部分内容 hdfs和mr,hdfs用与数据存储,MR是分布式计算框架。spark core完全可以代替MR, mr提供的map,reduce操作在spark中都有,并且还提供了很多其他的操作方法 像 filter sortby,groupBy等很多操作可以直接用,比mr要方便太多,RDD为①个数据集,rdd上的分区可以理解为与hdfs上的数据块①①对应的,在执行的时候每个分区上运行①个Task。另外,spark sql 可以直接把hive上的文件映射成①张表,就可以当做①张表来直接操作。 当然 sparksql 也可以直接操作hive表。\", \"extras\": \"\", \"created_time\": ①④⑧①①⑧④③⑤⓪ · \"type\": \"answer

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息