什么是Spark?

当然这里说的Spark指的是Apache Spark, Apache Spark is a fast and general engine for large-scale data processing: 一种快速通用可扩展的数据分析引擎。如果想要搞清楚Spark是什么,那么我们需要知道它解决了什么问题,还有是怎么解决这些问题的。

Spark解决了什么问题?

在这里不得不提大数据,大数据有两个根本性的问题,一个是数据很大,如何存储?另外一个是数据很大,如何分析?毕竟分析大数据是为了改善产品的用户体验,从而获取更多的价值。

对于第一个问题,开源社区给出的方案就是HDFS,一个非常优秀的分布式存储系统。

对于第二个问题,在Hadoop之 后,开源社区推出了许多值得关注的大数据分析平台。这些平台范围广阔,从简单的基于脚本的产品到与Hadoop 类似的生产环境。Bashreduce在 Bash环境中的多个机器上执行 MapReduce 类型的操作,可以直接引用强大的Linux命令。GraphLab 也是一种MapReduce 抽象实现,侧重于机器学习算法的并行实现。还有Twitter 的 Storm(通过收购 BackType 获得)。Storm 被定义为 “实时处理的 Hadoop”,它主要侧重于流处理和持续计算。

Spark就是解决第二个问题的佼佼者。

Why Spark?

现在有很多值得关注的大数据分析平台,那么为什么要选择Spark呢?

速度

与Hadoop的MapReduce相比,Spark基于内存的运算比MR要快100倍;而基于硬盘的运算也要快10倍!

易用

Spark支持Java,Python和Scala。而且支持交互式的Python和Scala的shell,这意味这你可以非常方便的在这些shell中使用Spark集群来验证你的解决问题的方法,而不是像以前一样,打包。这对于原型开发非常重要!

Hadoop的WorldCount的Mapper和Reducer加起来要20多行吧。Spark仅需要:

甚至可以将它们放到一行。

通用性

Spark提供了All in One的解决方案!

Spark All In One的解决方案非常具有吸引力,毕竟任何公司都想要Unified的平台去处理遇到的问题,可以减少开发和维护的人力成本和部署平台的物力成本。

当然还有,作为All in One的解决方案,Spark并没有以牺牲性能为代价。相反,在性能方面,Spark还有很大的优势。

和Hadoop的集成

Spark可以使用YARN作为它的集群管理器,并且可以处理HDFS的数据。这对于已经部署Hadoop集群的用户特别重要,毕竟不需要做任何的数据迁移就可以使用Spark的强大处理能力。Spark可以读取 HDFS , HBase , Cassandra 等一切Hadoop的数据。

当然了对于没有部署并且没有计划部署Hadoop集群的用户来说,Spark仍然是一个非常好的解决方法,它还支持 standalone , EC2 和 Mesos 。你只要保证集群的节点可以访问共享的内容,比如通过NFS你就可以非常容易的使用Spark!

Spark的现状与未来

值得庆祝的里程碑:

·        2009:Spark诞生于AMPLab

·        2010:开源

·        2013年6月:Apache孵化器项目

·        2014年2月:Apache顶级项目

·        Hadoop最大的厂商Cloudera宣称加大Spark框架的投入来取代Mapreduce

·        Hadoop厂商MapR投入Spark阵营

·        Apache mahout放弃MapReduce,将使用Spark作为后续算子的计算平台

·        2014年5月30日Spark1.0.0发布

走进Spark--云计算大数据新一代技术的更多相关文章

  1. 王家林 Spark公开课大讲坛第一期:Spark把云计算大数据速度提高100倍以上

    王家林 Spark公开课大讲坛第一期:Spark把云计算大数据速度提高100倍以上 http://edu.51cto.com/lesson/id-30815.html Spark实战高手之路 系列书籍 ...

  2. 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了

    一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了 转载: 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它 ...

  3. 如何成为云计算大数据Spark高手

    Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手. ...

  4. 【互动问答分享】第15期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    "决胜云计算大数据时代" Spark亚太研究院100期公益大讲堂 [第15期互动问答分享] Q1:AppClient和worker.master之间的关系是什么? AppClien ...

  5. 【互动问答分享】第13期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第13期互动问答分享] Q1:tachyon+spark框架现在有很多大公司在使用吧? Yahoo!已经在长期大规模使用: 国内也有 ...

  6. 【互动问答分享】第10期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第10期互动问答分享] Q1:Spark on Yarn的运行方式是什么? Spark on Yarn的运行方式有两种:Client ...

  7. 【互动问答分享】第8期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第8期互动问答分享] Q1:spark线上用什么版本好? 建议从最低使用的Spark 1.0.0版本,Spark在1.0.0开始核心 ...

  8. 【互动问答分享】第7期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第7期互动问答分享] Q1:Spark中的RDD到底是什么? RDD是Spark的核心抽象,可以把RDD看做“分布式函数编程语言”. ...

  9. 【互动问答分享】第6期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第6期互动问答分享] Q1:spark streaming 可以不同数据流 join吗? Spark Streaming不同的数据流 ...

随机推荐

  1. ui-grid下拉过滤

    { field: 'TDK', displayName: 'TDK缺失与否', cellTemplate: `<div class="ui-grid-cell-contents&quo ...

  2. 一种保持顺序的Properties

    其实properties有没有顺序都一样 程序都能正常运行 但看着就比较闹心 所以网上找了找 还真有人给了个例子实现读Property的有序 但是删除某些属性之后 写入又有问题 会异常 后来重写了一下 ...

  3. [C/C++] 智能指针学习

    转自:http://blog.csdn.net/xt_xiaotian/article/details/5714477 一.简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存 ...

  4. BZOJ3522 POI2014HOT-Hotels(树形dp)

    分两种情况.三点两两lca相同:在三点的lca处对其统计即可,显然其离lca距离应相同:某点在另两点lca的子树外部:对每个点统计出与其距离x的点有多少个即可. 可以长链剖分做到线性,当然不会. #i ...

  5. 为什么比IPVS的WRR要好?

    动机 五一临近,四月也接近尾声,五一节乃小长假的最后一天.今天是最后一天工作日,竟然感冒了,半夜里翻来覆去无法安睡,加上窗外大飞机屋里小飞机(也就是蚊子)的骚扰,实在是必须起来做点有意义的事了!    ...

  6. 【CF Round 434 A. k-rounding】

    Time limit per test1 second memory limit per test 256 megabytes input standard input output standard ...

  7. HTML5 canvas流体力学效果

    某人用Java搞了一个流体力学的演示:http://grantkot.com/MPM/Liquid.html. 下面是 HTML 5版的流体力学演示(推荐使用Chrome浏览器浏览): 效果演示 &l ...

  8. [hdu 3652]数位dp解决数的倍数问题

    原以为很好的理解了数位dp,结果遇到一个新的问题还是不会分析,真的是要多积累啊. 解决13的倍数,可以根据当前余数来推,所以把当前余数记为一个状态就可以了. #include<bits/stdc ...

  9. 网络编程:connect函数

    TCP客户用connect函数来建立与TCP服务器的连接: cpp #include<sys/socket.h> int connect(int sockfd, const struct ...

  10. Ubuntu下修改NAT模式的IP地址

    1,查看虚拟机的网段 在编辑->虚拟网络编辑器->NAT设置->网关 IP  可以查看到虚拟机的网关 如图 2,图形化设置: 图中 Netmask设置的是255.255.255.0 ...