spark与hadoop生态圈(一)

Spark是一个开源计算框架,开发者借助于其API编写分布式应用来使用集群资源,无须关心底层的分布;它支持各种工作负载,包括批处理、流式计算、商业智能分析、图形计算、以及机器学习。

为什么使用spark

  1. 可编程性:MapReduce需要几个链式的步骤来完成某些工作负载步骤,还需要这对不同应用的专用系统;
  2. Mr在计算步骤之间将中间数据写入磁盘,使得一些执行交互式分析和迭代算法的应用程序在重用数据时,非常低效。大多数机器学习一开始被设计为迭代算法,从而 在同一数据上进行多次遍历。

Spark相比较与mr的优势:速度、易用性、强大的分析能力;

  1. 速度;

Spark提供了100倍的速度于mr,提供了近乎实时处理的能力;

Hadoop:计算转移到数据所在的位置。Spark通过处理内存中的数据并使用执行计划来组织工作。

与mr比较优势原因:

  1. 使用内存呢存储数据(mr是在计算的时候使用了内存,spark在应用程序执行计算和存储时,都使用了内存);
  2. 减少了开销昂贵的shuffle过程;
  3. 减少I/O同步运算
  1. 基于内寸的计算能力

I/O延迟、数据在磁盘和内存指甲剪的传输延时,一直时整个作业执行时间的重要组成。

Mr作业执行期间多次从磁盘读写数据,使用spark只是读入一次数据,一旦读入数据,spark为了后续的处理,会把数据缓存在内存中,最小化了磁盘的I/O能力,从内存中读取的速度至少时读取磁盘速度的100倍,性能获得了显著的提升。

  1. 数据存储在内存中,使得汲取学习的作业处理会更快,可以执行更高效率的迭代;不需要写回磁盘或者从磁盘读取。这就是spark应用可以快速执行的关键原因。
  2. 如果数据量过大不能写入磁盘,大多数情况下处理器内存都是有限制,spark被设计的时候会判断数据处理流的那个阶段缓存数据,以及那些数据应该缓存,那些不会被缓存下来,有的时候也会不缓存任何的数据,只是一个过滤的处理
  3. Spark的集群上执行任务,可以数据本地化,转移代码处理数据的位置;
  1. 易用性

Spark程序的API比较丰富,支持多种语言:java\python\scala\sql。Scala是编写spark代码最流行的语言,代码量比较少,代码的执行性能最优。

 

4、架构通用性

  Mr是为批处理而设计的。Spark是一个比较通用的架构,处理类型比较多:批处理、交互式分析、流逝处理、机器学习、图形计算。

上图mr和spark处于同一个Hadoop集群,mr批处理量任务,Spark处理交互任务。Spark和hadoop是彼此的一个补充。

Spark的技术栈是什么?及组成组件?【sparkCore,sparkStreaming,Sparksql】

Spark的技术组件的功能:

1、Spark Core是spark的主要执行引擎,spark的所有依赖于此引擎。它提供主要的Spark功能,如调度、内存管理、故障恢复和存储管理,具有以下功能:

  1. 快速处理内存计算
  2. 支持各种通用执行模式
  3. 易于开发部署

2、SparkSql与结构化数据结合,就可以通过SQL和hive查询语言来查询数据,使用spark分布式数据集来分析SparkSql,RDD和spark编程抽象,用来表示可以并行处理的分布在集群中的数据集合。

  1. Spark Streaming 运行流逝处理,如web生成的日志等,它提供了强大的容错能力
  2. MLlib提供支持机器学习算法
  3. GraphX可以操作图
  4. 独立调度程序、YARN和Mesos等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值