hadoop mapreduce与spark,我该如何选择呢?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

hadoop mapreduce与spark,我该如何选择呢?

封神 2016-04-12 17:09:50 5567

目前我在使用hadoop emapreduce这个产品,我该怎么选择到底是用mapreduce还是用spark呢?

分布式计算 Hadoop Spark
分享到
取消 提交回答
全部回答(5)
  • 一只刺猬
    2020-03-30 10:48:14

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

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

    如果仅仅用来做海量数据存储,无疑只能选Hadoop了,Hadoop的HDFS可以看作是业内的分布式存储标准了,而Spark只能用来跑计算无法取代Hadoop。如果涉及到HDFS上的数据处理,那么Hadoop + Spark是最佳选择。

    0 0
  • 1984211245248939
    2019-07-17 18:41:33

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

    0 0
  • sz0729
    2019-07-17 18:41:33

    hadoop在mapreduce的过程中,会与硬盘有多次IO交互,运行时间慢。
    spark使用RDD,相比hadoop将多次IO转化为内存中RDD的转换,运行速度提升了不止一倍。
    所以对于MR任务,建议使用性能更好地spark。

    0 0
  • 缘方
    2019-07-17 18:41:33

    Hadoop MapReduce是一整套生态, 就算使用Spark也离不开HBase,Hive,Pig,Impala 或其他 Hadoop 项目。建议两者共同使用

    0 0
  • 封神
    2019-07-17 18:41:33

    spark是基于DAG,有cache的管理,原生就长在内存计算上的,其上支持 内存计算、流式计算、
    图计算、SQL等功能,这些又是在一套core上,互相之间可以交叉使用。
    还包含了丰富的API,RDD api、dataframe、dataset等。支持java、scala、python、R语言。
    是数据分析处理的一大利器。
    hadoop mr是基于map-reduce的,相对spark开发较早,稳定性较好,做数据清洗时能获取比较大的吞吐量。
    hadoop tez是基于DAG的,比spark应该晚点,以后作为hadoop hive的可选引擎之一。
    所以:
    ETL:hadoop mr/tez
    机器学习:spark mllib
    流式计算(s以上):spark streaming
    流式计算(s以下):storm
    图分析:spark graphx
    需要cache数据的,使用spark
    使用hive:则hadoop/tez
    使用SQL,可以尝试用spark sql,使用hive相对稳定一些
    更加宏观的可以参考文章:https://yq.aliyun.com/articles/15306?spm=0.0.0.0.v2fm6G

    0 0
添加回答
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题
推荐课程