
spark
cache007
这个作者很懒,什么都没留下…
展开
-
Spark:一个高效的分布式计算系统
转自:http://tech.uc.cn/?p=2116----------------------------------------------概述什么是SparkSpark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop转载 2015-08-21 17:13:52 · 407 阅读 · 0 评论 -
Spark的Shuffle机制
MapReduce中的Shuffle在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使转载 2016-04-08 14:28:40 · 351 阅读 · 0 评论 -
RDD操作详解1——Transformation和Actions概况
Spark算子的作用下图描述了Spark在运行转换中通过算子对RDD进行转换。 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。输入:在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间,转化为Spark中的数据块,通过BlockM转载 2016-04-08 14:29:43 · 623 阅读 · 0 评论 -
RDD操作详解2——值型Transformation算子
处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型:1)输入分区与输出分区一对一型2)输入分区与输出分区多对一型3)输入分区与输出分区多对多型4)输出分区为输入分区子集型5)还有一种特殊的输入与输出分区一对一的算子类型:Cache型。 Cache算子对RDD分区进行缓存输入分区与输出分区一对一型转载 2016-04-08 14:30:27 · 829 阅读 · 0 评论 -
RDD操作详解3——键值型Transformation算子
Transformation处理的数据为Key-Value形式的算子大致可以分为:输入分区与输出分区一对一、聚集、连接操作。输入分区与输出分区一对一mapValuesmapValues:针对(Key,Value)型数据中的Value进行Map操作,而不对Key进行处理。方框代表RDD分区。a=>a+2代表只对( V1, 1)数据中的1进行加2操作,返回结果为3。源码:转载 2016-04-08 14:31:08 · 443 阅读 · 0 评论 -
从作业提交到任务调度完整生命周期浅析
引言这一小节我们将就之前写的几篇博文,从提交Job,到Stage划分,到任务分发,再到任务的执行,这一完整过程做一系统的回顾。在这一过程中理清思路,明确几篇文章中涉及到的调度关系和逻辑关系。Spark作业提交到执行过程上面这个图摘自张包峰的csdn博客,这个图很清晰的描述了作业提交执行的整个过程,略去了细节原理,给人一种清晰直观的流程概况。通过该图结合一下我之前的博文来描述一下转载 2016-04-08 17:15:23 · 780 阅读 · 0 评论 -
spark-submit使用及说明
一、命令 1.向spark standalone以client方式提交job。?1./spark-submit --master spark://hadoop3:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-exam转载 2016-04-27 15:56:23 · 30529 阅读 · 0 评论 -
Spark性能相关参数配置 之 Shuffle 相关
Shuffle 相关Shuffle操作大概是对Spark性能影响最大的步骤之一(因为可能涉及到排序,磁盘IO,网络IO等众多CPU或IO密集的操作),这也是为什么在Spark 1.1的代码中对整个Shuffle框架代码进行了重构,将Shuffle相关读写操作抽象封装到Pluggable的Shuffle Manager中,便于试验和实现不同的Shuffle功能模块。例如为了解决Hash Ba转载 2016-04-17 14:15:20 · 364 阅读 · 0 评论 -
Spark性能相关参数配置 之 Storage相关配置参数
spark.local.dir这个看起来很简单,就是Spark用于写中间数据,如RDD Cache,Shuffle,Spill等数据的位置,那么有什么可以注意的呢。首先,最基本的当然是我们可以配置多个路径(用逗号分隔)到多个磁盘上增加整体IO带宽,这个大家都知道。其次,目前的实现中,Spark是通过对文件名采用hash算法分布到多个路径下的目录中去,如果你的存储设备有快有慢,比如SSD转载 2016-04-17 15:01:03 · 398 阅读 · 0 评论 -
Spark性能相关参数配置 之 压缩和序列化相关
压缩和序列化相关spark.serializer默认为org.apache.spark.serializer.JavaSerializer, 可选 org.apache.spark.serializer.KryoSerializer, 实际上只要是org.apache.spark.serializer的子类就可以了,不过如果只是应用,大概你不会自己去实现一个的。序列化对于spa转载 2016-04-17 15:35:13 · 484 阅读 · 0 评论 -
Spark性能相关参数配置 之 schedule调度相关
schedule调度相关调度相关的参数设置,大多数内容都很直白,其实无须过多的额外解释,不过基于这些参数的常用性(大概会是你针对自己的集群第一步就会配置的参数),这里多少就其内部机制做一些解释。spark.cores.max一个集群最重要的参数之一,当然就是CPU计算资源的数量。spark.cores.max 这个参数决定了在Standalone和Mesos模式下,一个Sp转载 2016-04-17 15:43:40 · 577 阅读 · 0 评论 -
Spark工作机制
一、应用执行机制一个应用的生命周期即,用户提交自定义的作业之后,Spark框架进行处理的一系列过程。在这个过程中,不同的时间段里,应用会被拆分为不同的形态来执行。1、应用执行过程中的基本组件和形态Driver: 运行在客户端或者集群中,执行Application的main方法并创建SparkContext,调控整个应用的执行。Application:转载 2016-05-03 19:21:46 · 916 阅读 · 0 评论 -
Spark Streaming介绍与基本执行过程
Spark Streaming作为Spark上的四大子框架之一,肩负着实时流计算的重大责任 而相对于另外一个当下十分流行的实时流计算处理框架Storm,Spark Streaming有何优点?又有何不足呢? 首先,对于Storm实时流处理惊人的低延迟性,Spark Streaming的不足很明显 Storm官方说的最低延迟可以使多少毫秒级别的 而Spark Streaming只能做转载 2016-05-03 19:24:59 · 2669 阅读 · 0 评论 -
Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
背景: 整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去的一天甚至一周的数据,这个时候不可避免的要进行状态管理,而Spark Streaming每个Batch Duractions都会产生一个Job,Job里面都是RDD,所以此时面临的问题就是怎么对状态进行维护?这个时候就需要借助updateStateByKey和mapWit转载 2016-06-18 22:32:16 · 645 阅读 · 0 评论 -
Spark容错机制
引入 一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。 面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。 因此,Spark选择记录更新的方式。但是,如果更新粒度太细太多,那么记录更新成本也不低。因此,RDD只支持粗粒度转换,即只记录单个块上执行的单个操作,然后将转载 2016-04-07 19:47:36 · 481 阅读 · 0 评论 -
RDD机制实现模型
RDD渊源 弹性分布式数据集(RDD),它是MapReduce模型一种简单的扩展和延伸,RDD为了实现迭代、交互性和流查询等功能,需要保证RDD具备在并行计算阶段之间能够高效地数据共享的功能特性。RDD运用高效的数据共享概念和类似于MapReduce的操作方式,使得所有的计算工作可以有效地执行,并可以在当前特定的系统中获得关键性的优化。RDD是一种有容错机制的特殊集合,可以分布在集群的节点上,以函转载 2016-04-07 18:01:55 · 1103 阅读 · 0 评论 -
RDD操作详解1——Transformation和Actions概况
Spark算子的作用 下图描述了Spark在运行转换中通过算子对RDD进行转换。 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。输入:在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间,转化为Spark中的数据块,通过BlockManager进转载 2016-04-07 17:10:20 · 793 阅读 · 0 评论 -
Spark Streaming:大规模流式数据处理的新贵
提到Spark Streaming,我们不得不说一下BDAS(Berkeley Data Analytics Stack),这个伯克利大学提出的关于数据分析的软件栈。从它的视角来看,目前的大数据处理可以分为如以下三个类型。 复杂的批量数据处理(batch data processing),通常的时间跨度在数十分钟到数小时之间。基于历史数据的交互式查询(interactive query转载 2015-09-23 15:53:02 · 901 阅读 · 0 评论 -
Spark Streaming实时计算框架介绍
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介绍Spark Streaming实时计算框架的原理与特点、适用场景。转载 2015-12-28 15:06:49 · 455 阅读 · 0 评论 -
Spark Streaming实例分析
问题导读:Example代码分析实例完成了什么功能?StreamingContext启动,都启动了什么功能?DStreamGraph是怎么生成的jobs?这一章要讲Spark Streaming,讲之前首先回顾下它的用法,具体用法请参照《Spark Streaming编程讲解 》。Example代码分析val ssc = new转载 2015-12-28 15:50:07 · 764 阅读 · 0 评论 -
Spark Streaming编程讲解
问题导读:1.什么是Spark Streaming?2.Spark Streaming可以接受那些数据源?3.Dstream,我们可以进行哪两种操作?参考:Spark:一个高效的分布式计算系统在看spark Streaming,我们需要首先知道什么是Spark streaming?Spark streaming: 构建在Spark上处理Stream数据的转载 2015-12-28 15:52:01 · 992 阅读 · 0 评论 -
Spark源码走读——Spark Streaming
SummarizeSpark Streaming实现了对实时流数据的高吞吐量、地容错的数据处理API。它的数据来源有很多种:Kafka、Flume、Twitter、ZeroMQ、TCP Scoket等。架构图如下:Streaming接收实时流输入的数据,将其按批划分,然后交给Spark Enigne分批处理。如下图所示:StreamingCo转载 2016-01-28 11:22:07 · 360 阅读 · 0 评论 -
Spark Streaming使用Kafka保证数据零丢失
文/jacksu_(简书作者)原文链接:http://www.jianshu.com/p/a46b23e1afb7#rd?sukey=7f8f3cb2e9b0da45d925e25c97e06efd24e732277a82c7d2b256660571bf9fe214dd9a4ef17c4046b16adc461c49472f著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。转载 2016-03-17 18:05:27 · 790 阅读 · 0 评论 -
Spark内核讲解之弹性分布数据集(一)
相信大数据工程师都非常了解Hadoop MapReduce一个最大的问题是在很多应用场景中速度非常慢,只适合离线的计算任务。这是由于MR需要将任务划分成map和reduce两个阶段,map阶段产生的中间结果要写回磁盘,而在这两个阶段之间需要进行shuffle操作。Shuffle操作需要从网络中的各个节点进行数据拷贝,使其往往成为最为耗时的步骤,这也是Hadoop MapReduce慢的根本原因之一转载 2016-03-17 19:21:56 · 1398 阅读 · 0 评论 -
Spark内核介绍:Spark在运行时会把Stage包装成任务提交 (二)
Spark在运行时会把Stage包装成任务提交,有父Stage的Spark会先提交父Stage。弄清楚了Spark划分计算的原理,我们再结合源码 看一看这其中的过程。下面的代码是DAGScheduler中的得到一个RDD父Stage的函数,可以看到宽依赖为划分Stage的边界。 上面提到Spark的计算是从RDD调用action操作时候触发的,我们来看一个action的代码RDD转载 2016-03-17 19:22:30 · 793 阅读 · 0 评论 -
Spark的Standalone模式安装部署
Spark运行模式Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Standalone 模式,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者 Mesos 环境,也是很方便部署的。local(本地模式):常用于本地开发测试,本转载 2016-04-05 17:08:09 · 986 阅读 · 0 评论 -
Spark生态和Spark架构
Spark概览Spark 是一个通用的大规模数据快速处理引擎。可以简单理解为 Spark 就是一个大数据分布式处理框架。Spark是基于map reduce算法实现的分布式计算框架,但不同的是Spark的中间输出和结果输出可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地用于数据挖掘与机器学习等需要迭代的map reduce的算法中。Spark生态系统BDAS伯克利转载 2016-04-05 18:04:09 · 6331 阅读 · 0 评论 -
Spark基本概念
Spark专用名词RDD —- resillient distributed dataset 弹性分布式数据集Operation —- 作用于RDD的各种操作分为transformation和actionJob —- 作业,一个JOB包含多个RDD及作用于相应RDD上的各种operationStage —- 一个作业分为多个阶段Partition —- 数据分区, 一个RDD中的数据可以分转载 2016-04-05 18:12:53 · 871 阅读 · 0 评论 -
弹性分布式数据集RDD概述
弹性分布数据集RDDRDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作转载 2016-04-05 19:49:51 · 4463 阅读 · 0 评论 -
Spark应用执行机制
Spark应用概念Spark应用(Application)是用户提交的应用程序。执行模式又Local、Standalone、YARN、Mesos。根据Spark Application的Driver Program是否在集群中运行,Spark应用的运行方式又可以分为Cluster模式和Client模式。下面是Spark应用涉及的一些基本概念:Application:Spark转载 2016-04-07 16:51:31 · 3886 阅读 · 0 评论 -
Spark容错机制
引入一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。因此,Spark选择记录更新的方式。但是,如果更新粒度太细太多,那么记录更新成本也不低。因此,RDD只支持粗粒度转换,即只记录单个块上执行的单个操作,然后转载 2016-10-18 11:47:29 · 402 阅读 · 0 评论