Spark入门系列之Spark 简介

Spark是一种基于内存计算的大数据并行计算框架,用于构建大型的低延迟的数据分析程序。

1、Spark生态系统的特点:

    运行速度快:使用DAD执行引擎,支持循坏数据流与内存计算;

      容易使用:支持scala、java、python、R语言,还可使用spark-shell 交互式编程方式;

 通用性强:spark生态系统提供完整的技术栈,包括SQL查询,流式计算,

运行模式多样:可部署独立集群,hadoop集群,EC2等,支持访问HDFS,HBase,Hive等数据源。

2、spark执行的特点

      DAG:task------>taskSet--------->stage---------->Job

中间结果输出:spark将工作流抽象成DAG,将多个stage的任务串联或者并行执行,而无需将stage的中间结果输出到磁盘;

数据格式和内存布局:spark将分布式内存存储结构抽象成RDD,简单理解,RDD即为分布式数据。spark可以控制数据再不同节点上分区,同时用户也可以自定义分区策略;

执行策略:spark内核可以将job划分为不同的stage,不同的stage之间可以并行计算。而又依赖的stage之间通过shuffle进行连接,通过shuffle,相同的分组数据聚合到统一节点处理。

任务调度开销:spark采用时间驱动的类库AKKA来启动任务。

3、spark的优势

相比较Hadoop框架,hadoop框架的缺点如下:

MR模型,表达能力有限:MR操作虽然简化了编程方式,同时也限制了操作的扩展,注定难以描述复杂的数据处理过程,并且MR处理速度极慢;

磁盘IO开销大:MR编程模型中 ,每一个task阶段,计算结果都将落盘,频繁的IO读写导致性能问题;

延迟高:MR编程模型中,每个阶段,IO开销导致计算延迟,同时下一阶段的输入必须依赖上一阶段的结果,导致延迟。

基于hadoop的上述缺陷,spark的优势如下:

计算速度快:spark计算原理,基于MR模型,但是提供了更多的操作集,比MR更加灵活,速度更加快速;

迭代效率高:spark基于内存的计算模型,省去了磁盘IO的开销,使得迭代计算具有更高的效率,尤其对于机器学习对计算效率高的算法库;

基于DAG的任务调度机制,比hadoop中的MR迭代机制更高效。

同样,spark也有自身的缺陷:

RDD的存储结构,适合粗粒度的并行计算,不适合细粒度的计算,如异步更新的计算;

spark streaming的原理是将批处理划分为短小的批处理,只是准实时计算,而不是真正的实时计算框架,而storm才是真正的实时流计算;

在图计算领域,graphLab也比spark GraphX在一定的硬件处理环境下,更胜一筹。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值