大家好,今天小编关注到一个有意思的话题,就是关于硅谷核心编程map教程的问题,于是小编就整理了1个相关介绍硅谷核心编程map教程的解答,让我们一起看看吧。
大数据Spark技术是否可以替代Hadoop?
总结为以下四点,可以参考。
1、Hadoop底层使用MapReduce计算架构,只有map和reduce两种操作,表达能力比较欠缺,而且在MR过程中会重复的读写hdfs,造成大量的磁盘io读写操作,所以适合高时延环境下批处理计算的应用;
2、Spark是基于内存的分布式计算架构,提供更加丰富的数据集操作类型,主要分成转化操作和行动操作,包括map、reduce、filter、flatmap、groupbykey、reducebykey、union和join等,数据分析更加快速,所以适合低时延环境下计算的应用;
3、spark与hadoop最大的区别在于迭代式计算模型。基于mapreduce框架的Hadoop主要分为map和reduce两个阶段,两个阶段完了就结束了,所以在一个job里面能做的处理很有限;spark计算模型是基于内存的迭代式计算模型,可以分为n个阶段,根据用户编写的RDD算子和程序,在处理完一个阶段后可以继续往下处理很多个阶段,而不只是两个阶段。所以spark相较于mapreduce,计算模型更加灵活,可以提供更强大的功能。
4、但是spark也有劣势,由于spark基于内存进行计算,虽然开发容易,但是真正面对大数据的时候,在没有进行调优的轻局昂下,可能会出现各种各样的问题,比如OOM内存溢出等情况,导致spark程序可能无法运行起来,而mapreduce虽然运行缓慢,但是至少可以慢慢运行完。
回答这个问题之前,首先要搞明白spark和Hadoop各自的定义以及用途,搞明白这个之后这个问题的答案也就出来了。
首先Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。
Hadoop是一个由Apache基金***开发的分布式系统基础架构。
Spark是一个计算引擎,主要用来做数据计算用。其核心模块包括Spark Core,Spark Streaming(流式计算),MLlib(集群学习),GraphX(图计算模块)。
Hadoop主要包括HDFS(分布式存储)、MapReduce(并行计算引擎)、Yarn(***调度)。
由此看来,Spark≈MapReduce,同时Spark相比于MapReduce有着更方便的函数处理,在计算速度,开发效率上更有着无法比拟的优势。Spark也支持外部的内存管理组件(Alluxio等),不排除未来Spark也提供分布式文件存储,目前来看没戏。其现在的发展目标主要集中在机器学习这块,已经提供了一体化的机器学习平台。这一点Flink还差点事。目前在国内更多的应用场景是Spark+Hadoop,即使用Spark来做数据计算,用Hadoop的HDFS来做分布式文件存储,用Yarn来做***调度。
Spark技术从之前和当前的技术路线上看不是为了替代Hadoop,更多的是作为Hadoop生态圈(广义的Hadoop)中的重要一员来存在和发展的。
首先我们知道Hadoop(狭义的Hadoop)有几个重点技术HDFS、MR(MapReduce), YARN。
这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式***调度框架(负责***调度)。
我们再来看Spark的技术体系 ,主要分为以下:
- Spark Core :提供核心框架和通用API接口等,如RDD等基础数据结构;
- Spark SQL : 提供结构化数据处理的能力, 分布式的类SQL查询引擎;
- Streaming: 提供流式数据处理能力;
到此,以上就是小编对于硅谷核心编程map教程的问题就介绍到这了,希望介绍关于硅谷核心编程map教程的1点解答对大家有用。