在Hadoop 和Spark之间如何取舍?MapReduce和Spark的区别是什么样
谢邀,这个问题题主没有说清楚场景呀。
我们首先得明白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
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
