没有合适的资源?快使用搜索试试~ 我知道了~
Spark 是加州大学伯克利分校 AMP(Algorithms,Machines,People)实验室开发的通用内存并行计算框架。 Spark 在 2013 年 6 月进入 Apache 成为孵化项目,8 个月后成为 Apache 顶级项目。 Spark 以其先进的设计理念,迅速成为社区的热门项目,围绕着 Spark 推出了 SparkSQL、SparkStreaming、MLlib 和 GraphX 等组件,逐渐形成大数据处理一站式解决平台。 Spark 与 Hadoop Hadoop 已经成了大数据技术的事实标准,Hadoop MapReduce 也非常适合于对大规模数据集合进行批处理操
资源推荐
资源详情
资源评论
Spark是什么?是什么?Spark和和Hadoop的区别的区别
Spark 是加州大学伯克利分校 AMP(Algorithms,Machines,People)实验室开发的通用内存并行计算框架。
Spark 在 2013 年 6 月进入 Apache 成为孵化项目,8 个月后成为 Apache 顶级项目。
Spark 以其先进的设计理念,迅速成为社区的热门项目,围绕着 Spark 推出了 SparkSQL、SparkStreaming、MLlib 和
GraphX 等组件,逐渐形成大数据处理一站式解决平台。
Spark 与与 Hadoop
Hadoop 已经成了大数据技术的事实标准,Hadoop MapReduce 也非常适合于对大规模数据集合进行批处理操作,但是其本
身还存在一些缺陷。特别是 MapReduce 存在的延迟过高,无法胜任实时、快速计算需求的问题,使得需要进行多路计算和迭
代算法的用例的作业过程并非十分高效。
根据 Hadoop MapReduce 的工作流程,可以分析出 Hadoop MapRedcue 的一些缺点。
1))Hadoop MapRedue 的表达能力有限。的表达能力有限。
所有计算都需要转换成 Map 和 Reduce 两个操作,不能适用于所有场景,对于复杂的数据处理过程难以描述。
2)磁盘)磁盘 I/O 开销大。开销大。
Hadoop MapReduce 要求每个步骤间的数据序列化到磁盘,所以 I/O 成本很高,导致交互分析和迭代算法开销很大,而几乎
所有的最优化和机器学习都是迭代的。所以,Hadoop MapReduce 不适合于交互分析和机器学习。
3)计算延迟高。)计算延迟高。
如果想要完成比较复杂的工作,就必须将一系列的 MapReduce 作业串联起来然后顺序执行这些作业。每一个作业都是高时延
的,而且只有在前一个作业完成之后下一个作业才能开始启动。因此,Hadoop MapReduce 不能胜任比较复杂的、多阶段的
计算服务。
Spark 是借鉴了 Hadoop MapReduce 技术发展而来的,继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷。
Spark 使用 Scala 语言进行实现,它是一种面向对象的函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据
集。它具有运行速度快、易用性好、通用性强和随处运行等特点,具体优势如下。
1))Spark 提供了内存计算,把中间结果放到内存中,带来了更高的迭代运算效率。通过支持有向无环图(DAG)的分布式并
行计算的编程框架,Spark 减少了迭代过程中数据需要写入磁盘的需求,提高了处理效率。
2))Spark 为我们提供了一个全面、统一的框架,用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源
(批量数据或实时的流数据)的大数据处理的需求。
Spark 使用函数式编程范式扩展了 MapReduce 模型以支持更多计算类型,可以涵盖广泛的工作流,这些工 作流之前被实现
为 Hadoop 之上的特殊系统。
Spark 使用内存缓存来提升性能,因此进行交互式分析也足够快速,缓存同时提升了迭代算法的性能,这使得 Spark 非常适合
数据理论任务,特别是机器学习。
3))Spark 比比 Hadoop 更加通用。更加通用。Hadoop 只提供了 Map 和 Reduce 两种处理操作,而 Spark 提供的数据集操作类型更加丰
富,从而可以支持更多类型的应用。
Spark 的计算模式也属于 MapReduce 类型,但提供的操作不仅包括 Map 和 Reduce,还提供了包括 Map、Filter、
FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort、PartionBy 等多种转换操
作,以及 Count、Collect、Reduce、Lookup、Save 等行为操作。
4))Spark 基于基于 DAG 的任务调度执行机制比的任务调度执行机制比 Hadoop MapReduce 的迭代执行机制更优越。的迭代执行机制更优越。
Spark 各个处理结点之间的通信模型不再像 Hadoop 一样只有 Shuffle 一种模式,程序开发者可以使用 DAG 开发复杂的多步
数据管道,控制中间结果的存储、分区等。
图 1 对 Hadoop 和 Spark 的执行流程进行了对比。
图 1 Hadoop 与 Spark 执行流程对比
从中可以看出,Hadoop 不适合于做迭代计算,因为每次迭代都需要从磁盘中读入数据,向磁盘写中间结果,而且每个任务都
需要从磁盘中读入数据,处理的结果也要写入磁盘,磁盘 I/O 开销很大。而 Spark 将数据载入内存后,后面的迭代都可以直接
使用内存中的中间结果做计算,从而避免了从磁盘中频繁读取数据。
对于多维度随机查询也是一样。在对 HDFS 同一批数据做成百或上千维度查询时,Hadoop 每做一个独立的查询,都要从磁盘
中读取这个数据,而 Spark 只需要从磁盘中读取一次后,就可以针对保留在内存中的中间结果进行反复查询。
资源评论
weixin_38717896
- 粉丝: 4
- 资源: 885
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功