
Spark
艾伦蓝
Just do it
展开
-
Spark 入门知识学习
[size=x-large][b]什么是Spark[/b][/size][color=red][b]Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。[/b][/color]最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势...原创 2017-04-08 11:46:03 · 179 阅读 · 0 评论 -
Spark SQL简单示例学习
原创 2017-04-25 14:17:14 · 115 阅读 · 0 评论 -
Spark 集群的搭建学习(1.6.3)
原创 2017-04-25 14:30:05 · 122 阅读 · 0 评论 -
Spark Streaming实时计算学习
原创 2017-04-27 10:31:26 · 145 阅读 · 0 评论 -
Spark parallelize函数和makeRDD函数的区别(Array-->RDD)
b](3)、从其他RDD创建。[/b][/color]而从集合中创建RDD,[b]Spark主要提供了两中函数:parallelize和makeRDD[/b]。我们可以先看看这两个函数的声明:[code="scala"]def parallelize[T:ClassTag]( seq:Seq[T], numSlices:Int =defaultParallelism):RDD[T] def makeRDD[T:Class原创 2017-04-27 14:56:34 · 272 阅读 · 0 评论 -
Spark MLlib平台的协同过滤算法---电影推荐系统学习
rkContext, SparkConf}import org.apache.spark.SparkContext._ import scala.io.Source object MovieLensALS { def main(args:Array[String]) { // 屏蔽不必要的日志显示在终端上 Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Log原创 2017-04-27 15:33:48 · 369 阅读 · 0 评论 -
Spark collect和take函数学习(RDD-->Array)
PartialFunction[T, U]): RDD[U] [/code][size=medium][b]实例[/b][/size][code="scala"]scala> val one: PartialFunction[Int, String] = { case 1 => "one"; case _ => "other"} one: PartialFunction[Int,String] =原创 2017-04-27 15:44:06 · 500 阅读 · 0 评论 -
Spark shuffle实现详细探究学习
能高低直接影响了整个程序的性能和吞吐量。[/b][/color]Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop MapReduce的shuffle有什么不同。[size=medium][b]Shuffle[/b][/size]Shuffle是MapReduce框架中的一个特定的phase,[color=blue][b]介于Map phase和Reduce phase之间,当Map原创 2017-04-28 15:08:58 · 209 阅读 · 0 评论 -
Spark 集群的搭建(1.6.3)
原创 2017-05-24 10:41:46 · 151 阅读 · 0 评论 -
Spark 为什么比Hadoop快
在于Spark 本身快。[/b][/color][color=red][size=large][b]Spark为什么快?[/b][/size][/color][b]1、消除了冗余的HDFS读写[/b]Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存中,以便迭代时使用。如果操作复杂,很多的shufle操作,那么Hadoop的读写IO时间会大大增加。[b]2、消除了冗余的MapReduce阶段[/b]Hadoop的原创 2017-05-25 16:12:04 · 150 阅读 · 0 评论 -
Spark 什么是DAG(有向无环图)(窄依赖和宽依赖)
park的应用[/b][/color]Spark内核会在[size=large][color=red][b]需要计算发生的时刻[/b][/color][/size]绘制一张关于计算路径的有向无环图,也就是DAG。[color=blue][b]有了计算的DAG图,Spark内核下一步的任务就是根据DAG图将计算划分成任务集,也就是Stage,这样可以将任务提交到计算节点进行真正的计算。[/b][/color]Spark计算的中间结果默认是保存在内存中的,Spark在划分Stage的时候会充分考虑在分布原创 2017-05-26 16:46:40 · 670 阅读 · 0 评论 -
Spark block和partition的区别
为128M,文件是250M,那么这份文件占3个block(128+128+2)。这样的设计虽然会有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的内容。(p.s. 考虑到hdfs冗余设计,默认三份拷贝,实际上3*3=9个block的物理空间。)[color=red][b]Spark中的partion是弹性分布式数据集RDD的最小单元,RDD是由分布在各个节点上的partion组成的。[/b][/color]partion是指的spark在计算过程中,生成的数据在计算空间内最小单元原创 2017-05-31 13:48:27 · 175 阅读 · 0 评论 -
Spark 实现TopN的问题(groupBy)
(_.split(" ")).map(f=>(f(0),f(1))).groupBy(f=>f._1)// 转换成(xx,List(1,23)) 格式 需要转换成整型var st = ss.map(f=>{var x = f._1;var y=f._2;(x,y.map(_._2.toInt))})// 得到每个键值前三的数组 格式 (aa,List(122,90,80)) Iterator没有sorted方法所以需要toArrayvar result原创 2017-05-31 14:11:53 · 369 阅读 · 0 评论 -
Spark Driver和Executor资源调度学习
原创 2017-05-31 16:14:58 · 208 阅读 · 0 评论 -
Spark RDD基于内存的集群计算容错抽象(核心概念)
educe等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见;二是交互式数据挖掘工具。这两种情况下,将数据保存在内存中能够极大地提高性能。[color=blue][b]为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操作来创建。[/b][/color]尽管如此,RDD仍然足以表示很多类型的计算,包括MapReduce和专用的迭代编程模型(如Pr原创 2017-04-11 20:09:24 · 158 阅读 · 0 评论 -
Spark 入门知识学习
利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。[color=blue][b]Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍。[/b][/color]原创 2017-04-08 11:46:03 · 131 阅读 · 0 评论 -
Spark 会把数据都载入到内存吗
[size=large][b]前言[/b][/size]很多初学者其实对Spark的编程模式还是RDD这个概念理解不到位,就会产生一些误解。比如,很多时候我们常常以为一个文件是会被完整读入到内存,然后做各种变换,这很可能是受两个概念的误导:1.RDD的定义,RDD是一个分布式的不可变数据集合2.Spark 是一个内存处理引擎如果你没有主动对RDDCache/Persis...原创 2017-06-01 10:14:33 · 638 阅读 · 0 评论 -
Spark RDD基于内存的集群计算容错抽象(核心概念)
[size=x-large][b]摘要[/b][/size]本文提出了分布式内存抽象的概念——[color=red][b]弹性分布式数据集[/b][/color](RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,...原创 2017-04-11 20:09:24 · 376 阅读 · 0 评论 -
Spark SQL简单示例学习
[size=medium][color=red][b]Spark SQL 作为Apache Spark大数据框架的一部分,主要用于结构化数据处理和对Spark数据执行类SQL的查询。[/b][/color][/size]通过Spark SQL,可以针对不同格式的数据执行ETL操作([b]如JSON,Parquet,数据库[/b])然后完成特定的查询操作。Spark大数据处理框架目前最新的版...原创 2017-04-25 14:17:14 · 237 阅读 · 0 评论 -
Spark 集群的搭建学习(1.6.3)
[size=medium][color=red][b]Spark是一个快速、通用的计算集群框架,它的内核使用Scala语言编写[/b][/color][/size],它提供了Scala、Java和Python编程语言high-level API,使用这些API能够非常容易地开发并行处理的应用程序。下面,[b]我们通过搭建Spark集群计算环境,并进行简单地验证,来体验一下使用Spark计算的特...原创 2017-04-25 14:30:05 · 229 阅读 · 0 评论 -
Spark Streaming实时计算学习
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。[color=red][b]Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。[/b][/color]本文将详细介绍Spark St...原创 2017-04-27 10:31:26 · 271 阅读 · 0 评论 -
Spark parallelize函数和makeRDD函数的区别(Array-->RDD)
我们知道,在Spark中创建RDD的创建方式大概可以分为三种:[b](1)、从集合中创建RDD;[/b][color=red][b](2)、从外部存储创建RDD;[/b][/color][color=blue][b](3)、从其他RDD创建。[/b][/color]而从集合中创建RDD,[b]Spark主要提供了两中函数:parallelize和makeRDD[/b]。我们可以...原创 2017-04-27 14:56:34 · 686 阅读 · 0 评论 -
Spark MLlib平台的协同过滤算法---电影推荐系统学习
[code="scala"]import org.apache.log4j.{Level, Logger}import org.apache.spark.mllib.recommendation.{ALS, MatrixFactorizationModel, Rating}import org.apache.spark.rdd._import org.apache.spark.{Spa...原创 2017-04-27 15:33:48 · 766 阅读 · 0 评论 -
Spark collect和take函数学习(RDD-->Array)
[size=large][color=red][b]将RDD转成Scala数组,并返回。[/b][/color][/size][size=medium][b]函数原型[/b][/size][code="scala"]def collect(): Array[T] def collect[U: ClassTag](f: PartialFunction[T, U]): RDD...原创 2017-04-27 15:44:06 · 1943 阅读 · 0 评论 -
Spark shuffle实现详细探究学习
[size=medium][b]Background[/b][/size]在MapReduce框架中,[color=red][b]shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。[/b][/color]Spark作为MapReduce框架的一种实现,自然也实现了shuf...原创 2017-04-28 15:08:58 · 156 阅读 · 0 评论 -
Spark 为什么比Hadoop快
Spark SQL比Hadoop Hive快,是有一定条件的,而且不是Spark SQL的引擎比Hive的引擎快,相反,Hive的HQL引擎还比Spark SQL的引擎更快。[color=red][b]其实,关键还是在于Spark 本身快。[/b][/color][color=red][size=large][b]Spark为什么快?[/b][/size][/color][b]...原创 2017-05-25 16:12:04 · 358 阅读 · 0 评论 -
Spark 什么是DAG(有向无环图)(窄依赖和宽依赖)
在Spark里每一个操作生成一个RDD,RDD之间连一条边,[color=red][b]最后这些RDD和他们之间的边组成一个有向无环图[/b][/color],这个就是DAG。[color=red][b]在spark的应用[/b][/color]Spark内核会在[size=large][color=red][b]需要计算发生的时刻[/b][/color][/size]绘制一张关于计算...原创 2017-05-26 16:46:40 · 1194 阅读 · 0 评论 -
Spark block和partition的区别
hdfs中的block是分布式存储的最小单元,类似于盛放文件的盒子,一个文件可能要占多个盒子,但一个盒子里的内容只可能来自同一份文件。假设block设置为128M,文件是250M,那么这份文件占3个block(128+128+2)。这样的设计虽然会有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的内容。(p.s. 考虑到hdfs冗余设计,默认三份拷贝,实际上3*3=9个bl...原创 2017-05-31 13:48:27 · 2729 阅读 · 0 评论 -
Spark 实现TopN的问题(groupBy)
[b]t2.txt[/b][code="txt"]ab 11 ab 23ab 13 ab 44bb 32bb 88[/code][code="scala"]// 读取文件var lines = sc.textFile("/test/t2.txt")// 对键值进行分组var ss = lines.map(_.split(" ")).map(f=>...原创 2017-05-31 14:11:53 · 619 阅读 · 0 评论 -
Spark Driver和Executor资源调度学习
[size=medium][color=red][b]一、引子[/b][/color][/size] 在Worker Actor中,每次LaunchExecutor会创建一个CoarseGrainedExecutorBackend进程,Executor和CoarseGrainedExecutorBackend是1对1的关系。也就是说集群里启动多少Executor实例就有多少CoarseGra...原创 2017-05-31 16:14:58 · 181 阅读 · 0 评论 -
Spark 会把数据都载入到内存吗
原创 2017-06-01 10:14:33 · 478 阅读 · 0 评论