开发者社区> 问答> 正文

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

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

展开
收起
封神 2016-04-12 17:09:50 9248 0
5 条回答
写回答
取消 提交回答
  • Hadoop主要由HDFS + YARN + MapReduce三个核心组件组成,HDFS是一个文件系统,负责分布式存储;YARN是Hadoop自带的一个通用的资源管理框架,用来对跑在集群上的Application进行资源分配及管理;MapReduce是一个分布式计算框架,跑在YARN上,配合HDFS用来做分布式数据计算。

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

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

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

    2019-07-17 18:41:33
    赞同 展开评论 打赏
  • hadoop在mapreduce的过程中,会与硬盘有多次IO交互,运行时间慢。
    spark使用RDD,相比hadoop将多次IO转化为内存中RDD的转换,运行速度提升了不止一倍。
    所以对于MR任务,建议使用性能更好地spark。

    2019-07-17 18:41:33
    赞同 展开评论 打赏
  • Hadoop MapReduce是一整套生态, 就算使用Spark也离不开HBase,Hive,Pig,Impala 或其他 Hadoop 项目。建议两者共同使用

    2019-07-17 18:41:33
    赞同 展开评论 打赏
  • 专注在大数据分布式计算、数据库及存储领域,拥有13+年大数据引擎、数据仓库、宽表引擎、平台研发经验,6年云智能大数据产品技术一号位经验,10年技术团队管理经验;云智能技术架构/云布道师; 研发阿里历代的大数据技术产品包括ODPS、DLA、ADB,最近五年主导宽表引擎研发、DLA、ADB湖仓研发;

    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

    2019-07-17 18:41:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载