spark原理介绍 分类: B8_SPARK 2015-04-28 12:33 1039人阅读 评论(0) 收藏
1、spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。因此运行spark的机器应该尽量的大内存,如96G以上。
2、spark所有操作均基于RDD,操作主要分成2大类:transformation与action。
3、spark提供了交互处理接口,类似于shell的使用。
4、spark可以优化迭代工作负载,因为中间数据均保存于内存中。
5、spark 是在 Scala 语言中实现的,它可以使用scala、python进行交互式操作,还可以使用scala、python、java进行编程。
6、spark可以通过mesos运行在hdfs上,但hadoop2.x提供了YARN,这更方便于spark运行在hdfs,YARN还提供了内存、CPU的集群管理功能。
7、Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为Transformations。同时还提供Count,collect, reduce, lookup, save等多种actions。这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的
Data Shuffle一种模式。用户可以命名,物化,控制中间结果的分区等。可以说编程模型比Hadoop更灵活.
==========================================================
以下内容摘自:http://www.itpub.net/thread-1864721-3-1.html
1、 Spark VSHadoop有哪些异同点?
Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘、分析
Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽 管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms,Machines,and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负 载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟.
在大数据处理方面相信大家对hadoop已经耳熟能详,基于GoogleMap/Reduce来实现的Hadoop为开发者提供了map、reduce原 语,使并行批处理程序变得非常地简单和优美。Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为Transformations。同时还提供Count,collect,
reduce, lookup, save等多种actions。这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的 Data Shuffle一种模式。用户可以命名,物化,控制中间结果的分区等。可以说编程模型比Hadoop更灵活.
2、Spark在容错性方面是否比其他工具更有优越性?
从Spark的论文《Resilient Distributed Datasets: AFault-TolerantAbstraction for In-Memory Cluster Computing》中没看出容错性做的有多好。倒是提到了分布式数据集计算,做checkpoint的两种方式,一个是checkpoint data,一个是loggingthe updates。貌似Spark采用了后者。但是文中后来又提到,虽然后者看似节省存储空间。但是由于数据处理模型是类似DAG的操作过程,由于图中的某
个节点出错,由于lineage chains的依赖复杂性,可能会引起全部计算节点的重新计算,这样成本也不低。他们后来说,是存数据,还是存更新日志,做checkpoint还是由用 户说了算吧。相当于什么都没说,又把这个皮球踢给了用户。所以我看就是由用户根据业务类型,衡量是存储数据IO和磁盘空间的代价和重新计算的代价,选择代 价较小的一种策略。取代给中间结果进行持久化或建立检查点,Spark会记住产生某些数据集的操作序列。因此,当一个节点出现故障时,Spark会根据存 储信息重新构造数据集。他们认为这样也不错,因为其他节点将会帮助重建。
3、Spark对于数据处理能力和效率有哪些特色?
Spark提供了高的性能和大数据处理能力,使得用户可以快速得到反馈体验更好。另一类应用是做数据挖掘,因为Spark充分利用内存进行缓存,利用 DAG消除不必要的步骤,所以比较合适做迭代式的运算。而有相当一部分机器学习算法是通过多次迭代收敛的算法,所以适合用Spark来实现。我们把一些常 用的算法并行化用Spark实现,可以从R语言中方便地调用,降低了用户进行数据挖掘的学习成本。
Spark配 有一个流数据处理模型,与Twitter的 Storm框架相比,Spark采用了一种有趣而且独特的办法。Storm基本上是像是放入独立事务的管道,在其中事务会得到分布式的处理。相 反,Spark采用一个模型收集事务,然后在短时间内(我们假设是5秒)以批处理的方式处理事件。所收集的数据成为他们自己的RDD,然后使用Spark 应用程序中常用的一组进行处理。作者声称这种模式是在缓慢节点和故障情况下会更加稳健,而且5秒的时间间隔通常对于大多数应用已经足够快了。这种方法也很 好地统一了流式处理与非流式处理部分。
随着大数据相关技术和产业的逐渐成熟,单个组织内往往需要同时进行多种类型的大数据分析作业:传统Hadoop MapReduce最为擅长的批量计算、各种机器学习算法为代表的迭代型计算、流式计算、社交网络中常用的图计算、SQL关系查询、交互式即席查询等。在 Spark出现前,要在一个组织内同时完成以上数种大数据分析任务,就不得不与多套独立的系统打交道,一方面引入了不容小觑的运维复杂性,另一方面还免不 了要在多个系统间频繁进行代价高昂的数据转储。
Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数 据仓库、流处理和图计算等多种计算范式,是罕见的全能选手。Spark当下已成为Apache基金会的顶级开源项目,拥有着庞大的社区支持(活跃开发者人 数已超过Hadoop MapReduce),技术也逐渐走向成熟。
1、spark由于启用了内存分布数据集,充分利用了分布式内存技术使其运算效率在hadoop至少;使用Scala语言编写;另外随着hadoop 2.0的发布,Spark亦可直接运行在YARN上。
2、容错特性:Spark 引进弹性分布式数据集(RDD) 。RDD 是分布在一组节点中的只读对象集合。集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 "血统"(即允许基于数据衍生过程重建部分数据集的信息)。
3、很明显采用内存计算的效率远高于具有大量磁盘IO操作的Hadoop
4、迷你书,能在最短的时间内掌握尽可能多的内容,看起来不至于太累。
我们公司现在数据的处理主要是在hadoop上 但是也搭建了10台的spark的集群
hadoop 可以使用比较廉价的PC机器 但是spark尽量还是使用内存配置比较高的 我们这用的是64G内存的
网上资料说尽量使用96G内存以上的 但是我们这没那么好的机器做测试
相比较于hadoop 我们使用的spark觉得有几下几个优点
第一 spark基于内存计算,速度很明显 。 10台的SPARK的集群的速度可以和我们这hadoop集群的50台的差不多 但是 hadoop 的集群内存大小不一 有8G的 有16G的
第二 spark是基于Scala 相比较hadoop基于java spark更适合数据挖掘 因为scala就是技术机器挖掘的
第三 hadoop 编程模式处理数据很死 只有map 和reduce 而spark编程模式更灵活
第四 据说 spark的算法比hadoop算法更厉害 这个我们这也不知道怎么看 只知道处理数据速度确实快了很多
1、Spark VS Hadoop有哪些异同点?
Spark是基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更 好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
2、Spark在容错性方面是否比其他工具更有优越性?
现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见;二是交互式数据挖掘工具。这两种情况下,将数据保存在内存 中能够极大地提高性能。为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操作来创建。尽管如 此,RDD仍然足以表示很多类型的计算,包括MapReduce和专用的迭代编程模型(如Pregel)等。Spark实现的RDD在迭代计算方面比 Hadoop快二十多倍,同时还可以在5-7秒的延时内交互式地查询1TB的数据集。
3、Spark对于数据处理能力和效率有哪些特色?
与Hadoop进行对比,结果如下:
(1)对于迭代式机器学习应用,Spark比Hadoop快20多倍。这种加速比是因为:数据存储在内存中,同时Java对象缓存避免了反序列化操作(deserialization)。
(2)用户编写的应用程序执行结果很好。例如,Spark分析报表比Hadoop快40多倍。
(3)如果节点发生失效,通过重建那些丢失的RDD分区,Spark能够实现快速恢复。
(4)Spark能够在5-7s延时范围内,交互式地查询1TB大小的数据集。
1、Spark VS Hadoop有哪些异同点?
作为通用的并行处理框架,Spark具有类似Hadoop的一些优点,而且Spark采用了更好的内存管理,
在迭代计算上具有比Hadoop更高的效率,Spark还提供了更为广泛的数据集操作类型,大大方便了
用户的开发,checkpoint的应用使Spark具有很强容错能力,众多优越的性能和比Hadoop更广泛
的适用面让Spark的进一步发展值得期待。
2、Spark在容错性方面是否比其他工具更有优越性?
在分布式数据集计算时通过checkpoint来实现容错,而checkpoint
有两种方式,一个是checkpoint data,一个是logging the updates。
用户可以控制采用哪种方式来实现容错。
3、Spark对于数据处理能力和效率有哪些特色?
由于Spark处理数据利用内存,因此它的速度是非常快的,
Spark Streaming:大大提高Spark流处理的能力和稳定性,
使用户可以用同一套代码进行大数据流处理和批量处理。
版权声明:本文为博主原创文章,未经博主允许不得转载。
spark原理介绍 分类: B8_SPARK 2015-04-28 12:33 1039人阅读 评论(0) 收藏的更多相关文章
- C++ Virtual介绍 分类: C/C++ 2015-06-16 21:36 26人阅读 评论(0) 收藏
参考链接:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html 学过C++的人都知道在类Base中加了Virtual关键字的函 ...
- 【Heritrix基础教程之2】Heritrix基本内容介绍 分类: B1_JAVA H3_NUTCH 2014-06-01 13:02 878人阅读 评论(0) 收藏
1.版本说明 (1)最新版本:3.3.0 (2)最新release版本:3.2.0 (3)重要历史版本:1.14.4 3.1.0及之前的版本:http://sourceforge.net/projec ...
- ios UIKit动力 分类: ios技术 2015-07-14 12:55 196人阅读 评论(0) 收藏
UIkit动力学是UIkit框架中模拟真实世界的一些特性. UIDynamicAnimator 主要有UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. 它一般有两种初始 ...
- 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏
也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...
- ASIHTTPRequest异步请求 分类: ios技术 2015-03-01 09:33 48人阅读 评论(0) 收藏
我们运行程序,如果网速很慢,查询的时候会一直黑屏,直到请求结束画面才出现,这样用户体验很不好.因此同步请求一般只是在某个子线 程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情 ...
- Beautiful People 分类: Brush Mode 2014-10-01 14:33 100人阅读 评论(0) 收藏
Beautiful People Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- JAVA swing中JPanel如何实现分组框的效果以及设置边框颜色 分类: Java Game 2014-08-16 12:21 198人阅读 评论(0) 收藏
代码如下: import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import javax.sw ...
- Http,Https(SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2的配置和使用 分类: ASP.NET 2014-11-05 12:51 97人阅读 评论(0) 收藏
下载地址1:https://securityswitch.googlecode.com/files/SecuritySwitch%20v4.2.0.0%20-%20Binary.zip 下载地址2:h ...
- 服务器证书安装配置指南(IIS7.5) 分类: ASP.NET 2014-11-05 12:39 105人阅读 评论(0) 收藏
1.启动IIS管理器,点击开始菜单->所有程序->管理工具->Internet信息服务(IIS)管理器: 2.选择"服务器证书": 3.在右边窗口,选择" ...
随机推荐
- vue 点击事件阻止冒泡 用stop
1.使用vue阻止子级元素的click事件冒泡,很简单,用stop.eg: @click.stop='xxx'
- JavaScript笔记(5)
1.return 跳出当前函数 返回一个结果 <script> //return可以跳出当前函数 所以return写在函数的最后一行 function out() { return fun ...
- LuoguP3254 圆桌问题(最大流)
题目描述 假设有来自m 个不同单位的代表参加一次国际会议.每个单位的代表数分别为ri (i =1,2,……,m). 会议餐厅共有n 张餐桌,每张餐桌可容纳ci (i =1,2,……,n)个代表就餐. ...
- Linux 时区的修改
Linux 时区的修改 1. CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 ``` [root@centos7 ...
- dp水题
hdu 2084: #include <stdio.h> #include <iostream> #include <string.h> using namespa ...
- Android屏幕分辨率获取方法--源码剖析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在适配的过程中,有时我们会用到屏幕宽高,那么如何获得屏幕的分辨率? 方法有两种: 第一种是通过Win ...
- POJ——T 3461 Oulipo
http://poj.org/problem?id=3461 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 42698 ...
- 74LS153 选择器 【数字电路】
74LS153 我用了八个不同频率的方波信号,用153当作信号选择器,控制环节的开关是4通道的选择器,00 01 10 11分别选择通道 0 1 2 3 以下是八选一的demo
- using可以用于释放操作,相当于Dispose()
using可以用于释放操作,相当于Dispose()
- STM32 输入捕获的脉冲宽度及频率计算
输入捕获模式可以用来测量脉冲宽度或者测量频率.STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能.以下是对脉冲宽度及频率的计算. 1.脉冲宽度 如下图所示,采集该高电平脉冲 ...