Spark概述

一、Spark简介

  Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)

Spark在2014年打破了Hadoop保持的基准排序纪录
Spark/206个节点/23分钟/100TB数据
Hadoop/2000个节点/72分钟/100TB数据
Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度

1、Spark具有如下几个主要特点:

运行速度快:使用DAG(directed acyclic graph有向无环图,任务调度机制)执行引擎以支持循环数据流与内存计算
容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件
运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

2、Scalc 

  Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言。

  Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),提高程序开发效率

  Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java 虚拟机),并兼容现有的Java程序

Scala的特性:
Scala具备强大的并发性(REPL),支持函数式编程,可以更好地支持分布式系统
Scala语法简洁,能提供优雅的API
Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中

函数式编程是种编程范式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。

3、Hadoop存在如下一些缺点:

磁盘IO开销大
延迟高
任务之间的衔接涉及IO开销
在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务

4、Spark与Hadoop的对比

Spark与Hadoop的对比Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题

相比于Hadoop MapReduce,Spark主要具有如下优点:

Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活
Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高
Spark基于DAG(有向无环图)的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制

 

 

posted on 2017-07-18 22:20  ostin  阅读(420)  评论(0)    收藏  举报