Spark
文章平均质量分 80
axxbc123
这个作者很懒,什么都没留下…
展开
-
【Spark】Spark一:Spark伪分布式安装
Spark1.2.0伪分布式安装JDK1.7.0_67Haddoop2.5.2(伪分布式安装)Scala2.11.4Spark1.2.0(伪分布式安装) 下载并配置Scala1. 下载Scala2.11.4 wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.102...原创 2015-01-02 10:08:58 · 322 阅读 · 0 评论 -
【Spark】Spark二:Spark RDD初步
什么是RDDSpark是围绕着RDD(Resilient Distributed Dataset,弹性分布式数据集)建立起来的,也就是说,RDD是Spark框架的核心基石。RDD是一个可容错的数据集,这个数据集合中的数据是可以并行处理的。 RDD的特点:A list of partitions 一系列的分片,比如说64M一片;类似于Hadoop中的split;A fun...原创 2015-01-02 12:55:41 · 166 阅读 · 0 评论 -
【Spark】Spark三: Spark RDD API初步第一部分
RDD基本操作RDD是Spark提供给程序员操作的基本对象,很多Map/Reduce的操作都是在RDD上进行的, 1. 将List转化为RDD scala> val rdd = sc.parallelize(List(1,2,3,4,5));rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] ...原创 2015-01-02 16:33:47 · 232 阅读 · 0 评论 -
【Spark】Spark四: Spark RDD API初步第二部分
RDD TransformjoinuniongroupByKeyRDD Actionreducelookup join、union和groupByKey是RDD中Transform部分的API;而reduce和lookup是RDD中Action部分的API Union Union是将两个RDD中数据取并集,然后得到一个新的RDD ...原创 2015-01-02 17:43:40 · 177 阅读 · 0 评论 -
【Spark】Spark五: Spark RDD API初步第三部分
本文对Sogou的日志进行分析,Sogou日志下载地址. http://download.labs.sogou.com/dl/sogoulabdown/SogouQ/SogouQ2012.mini.tar.gz Sogou日志说明: 解压查看Sougou日志的内容和格式, 文件格式:访问时间\t加密的用户ID\t搜索关键词\t该URL的搜索结果...原创 2015-01-02 20:55:32 · 227 阅读 · 0 评论 -
【Spark】Spark七: Spark概述
在前面几篇博客里,介绍了Spark的伪分布式安装,以及使用Spark Shell进行交互式操作,本篇博客主要是对Spark整体上进行梳理。 Spark的几个特点Spark是基于内存的计算,比基于磁盘的Hadoop Map Reduce快了百倍的数量级Spark MapReduce操作更丰富更灵活Spark通过一个技术栈,提供完整的针对大数据计算的生态系统Spark速...原创 2015-01-03 10:44:16 · 746 阅读 · 0 评论 -
【Spark】Spark六: Spark版本的WordCount
开发Spark WordCount的步骤下载并配置Scala2.11.4下载Scala版本的Eclipse,简称Scala IDE下载Spark安装包,使用其中的开发Spark程序需要依赖的jar包下载Spark源代码,以使jar包关联源代码配置IDE环境编写并编译源代码导出jar包提交SparkWordCount jar包到Spark服务器上运行,并查看运行...原创 2015-01-03 12:17:28 · 289 阅读 · 0 评论 -
【Spark】Spark八: 深入Spark RDD第一部分
RDD,Resilient Distributed Object,弹性分布式数据集,是Spark牛逼的基石。 RDD是什么? Spark使用RDD类对RDD进行了抽象,如下是,RDD类的scaladoc,A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an i...原创 2015-01-03 14:09:30 · 157 阅读 · 0 评论 -
【Spark】Spark九: 深入Spark RDD第二部分RDD依赖与运行时
在Spark中, RDD是有依赖关系的,这种依赖关系有两种类型窄依赖(Narrow Dependency)宽依赖(Wide Dependency)以下图说明RDD的窄依赖和宽依赖 窄依赖窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,表现为一个父RDD的分区对应于一个子RDD的分区两个父RDD的分区对应于一个子RDD 的分区。如上面的...原创 2015-01-03 17:47:45 · 136 阅读 · 0 评论 -
【Spark】Spark十: Spark SQL第一部分
Spark的One Stack to rule them all的特性,在Spark SQL即有显现。在传统的基于Hadoop的解决方案中,需要另外安装Pig或者Hive来解决类SQL的即席查询问题。 本文以Spark Shell交互式命令行终端简单的体验下Spark提供的类SQL的数据查询能力 上传数据到HDFS首先将测试数据上传到HDFS中,本文用到的测试数据来自于Spa...原创 2015-01-03 20:23:30 · 137 阅读 · 0 评论 -
【Spark十一】Spark集群基本架构及相关术语
Spark组织的不是很合理,到这时才说到Spark集群的基本架构。原因是,前面的篇幅更多的是在Spark Shell上体验Spark API,以及对RDD一些粗浅的认识。没事,本着由粗糙到精细的原则,一步一步来,最后再把整个Spark相关的博客整理下,使之有条理,目前只是记录学习的过程。 Spark Cluster Overview 下面对上图进行解释:Sp...原创 2015-01-04 22:14:35 · 127 阅读 · 0 评论 -
【Spark十二】Spark任务调度和作业执行流程初步
任务调度以及作业执行流程是Spark的核心,本文不进行源码级别的探究,只是概述Spark的核心组件、它们的作用以及它们如何协作以完成计算作业。 Spark核心组件SparkContextJobRDDDAGSchedulerDAGTaskSchedulerStageTaskSetTaskBlockManagerBlockTrackerSh...原创 2015-01-04 22:44:39 · 426 阅读 · 0 评论 -
【Spark十三】一张图介绍Spark
一张图介绍Spark原创 2015-01-05 22:45:18 · 167 阅读 · 0 评论 -
【Spark十四】深入Spark RDD第三部分RDD基本API
对于K/V类型的RDD,如下操作是什么含义? val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))rdd.reduceByKey(_+_).collect reduceByKey在这里的操作,是把RDD中的元素按照Key进行Reduce,因为它是K/V类型的RDD,那么_+_中的_是对Value而言的...原创 2015-01-05 22:55:31 · 128 阅读 · 0 评论 -
【Spark十五】Intellj Idea搭建Spark源代码开发环境
Profile的选择: 1. hadoop-2.4和YARN勾选,复选框中显示黑色的对号2. hbase-hadoop1,maven-3,scala-2.10默认选择,复选框中显示灰的对号 问题:1. PermGen内存[ERROR] PermGen space -> [Help 1]java.lang.OutOfMemoryError: P...原创 2015-01-08 21:10:42 · 236 阅读 · 0 评论 -
【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式
Spark SQL数据源和表的Schemacase classapply schemaparquetjsonJSON数据源准备源数据{"name":"Jack", "age": 12, "addr":{"city":"beijing", "zipcode":"111"}}{&q原创 2015-01-10 12:07:36 · 590 阅读 · 0 评论 -
【Spark十七】: Spark SQL第三部分结合HIVE
Hive On SparkSpark发行版本里自带了Hive,也就是说,使用Hive时,不需要单独的安装Hive? Spark SQL supports reading and writing data stored in Apache Hive. However, since Hive has a large number of dependencies, it is not i...原创 2015-01-10 13:51:35 · 497 阅读 · 0 评论 -
【Spark十八】Spark History Server
本文包括如下内容: Spark History Server的作用配置Spark History Server运行Spark History Server查看Spark程序的运行信息Spark History Server的作用在 运行Spark应用程序的时候,driver会提供一个webUI用于展现应用程序的运行信息,但是该we...原创 2015-01-10 19:20:01 · 402 阅读 · 0 评论 -
【Spark十九】Spark on YARN部署
不知不觉,已经到了Spark的第19篇博客了,这个系列很不系统,基本上是学到哪写到哪,而不是成竹在胸之后,高屋建瓴的写,这个等到对Spark有了比较深刻的理解和把握之后再来整理这些博客,毕竟刚接触Spark10天,继续!在之前的文章中,Spark都是使用默认的伪分布式部署方式,没有从系统部署的角度去审视Spark,目前的状态是能运行Spark能跑通例子的程度,在此之前,Spark的配置文件...原创 2015-01-10 20:06:03 · 404 阅读 · 0 评论 -
【Spark二十】运行Spark Streaming的NetworkWordCount实例
Spark Streaming简介 NetworkWordCount代码 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this ...原创 2015-01-11 12:54:12 · 727 阅读 · 0 评论 -
【Spark二一】Spark Streaming结合Kafka
本篇运行Spark Streaming自带的例子KafkaWorkCount,为运行这个例子,需要搭建环境,具体的讲,需要安装运行Kafka安装运行Zookeeper(因为Kafka的运行依赖于Zookeeper以注册Topic到Zookeeper上) ---,除了安装运行独立的Zookeeper,Kafka也可以使用安装包里的Zookeeper,如果Kafka要使用自己的Zoo...原创 2015-01-11 13:32:55 · 657 阅读 · 0 评论 -
【Spark二十二】在Intellij Idea中调试运行Spark应用程序
Scala版本scala-2.10.4 说明:之前搭建环境一直不成功,原因可能是使用了Scala-2.11.4版本导致的。Spark的官方网站明确的说Spark-1.2.0不支持Scala2.11.4版本: Note: Scala 2.11 users should download the Spark source package and build with Sca...原创 2015-01-14 22:25:29 · 935 阅读 · 0 评论 -
【Spark二十三】未分类
什么是DAGDAG是有向无环图,它的功能是在Spark运行应用程序(Application)时,首先建立一个有向无环图(DAG),图上的每个节点是一个操作,而Spark的操作分为两类,一类是Transform,一类是Action。在应用程序执行过程中,只有遇到Action类的操作时,才会出发作业(Job)的提交。一个应用程序可以包含多个作业。在提交作业后,首先根据DAG计算这个作业包含哪些...原创 2015-01-15 22:00:18 · 130 阅读 · 0 评论 -
【Spark二四】Spark内核源码剖析
Spark内核源码非常复杂,同时也是Spark的精髓所在,目前只做记录所学的点点滴滴,回头再整理总结。 RDD,DAGScheduler,TaskScheduler,WorkerSpark根据应用程序的算子(转换算子,行动算子)生成一张DAG图,比如rdd1.join(rdd2).groupBy(..).filter(..)。DAGScheduler对于RDD,在遇到涉及Shuff...原创 2015-01-18 13:07:15 · 284 阅读 · 0 评论 -
【Spark二五】Spark常见问题
1. RDD之间的依赖关系(DAG静态视图)是什么时候确定的,具体到代码层次2. 对DAG中的RDD根据RDD的宽窄依赖进行Stage划分,这个在什么时候做的,具体到代码层次3. 在DAG的Shuffle阶段,此时Stage的输出将作为下一个Stage的输入以及输出到什么位置,这个在什么时候做的,具体到代码层次4. 所谓的基于排序的Shuffle和基于Hash的Shuffle,这二...原创 2015-01-18 16:50:50 · 132 阅读 · 0 评论 -
【Spark二六】Spark代码剖析
SparkEnv初始化的角色 org.apache.spark.shuffle.sort.SortShuffleManager ///shuffleManager org.apache.spark.MapOutputTrackerMaster org.apache.spark.shuffle.ShuffleMemoryManager org.apache.spa...原创 2015-01-21 21:42:42 · 107 阅读 · 0 评论 -
【Spark二七】Spark Shuffle写过程源代码代码剖析
以WordCount为例,最简单情况的Shuffle过程为例,展示Spark Shuffle的读写过程,WordCount代码: package spark.examplesimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.Sp...原创 2015-01-24 11:40:55 · 278 阅读 · 1 评论 -
【Spark二八Spark Shuffle读过程源代码代码剖析
Spark的shuffle读操作是性能杀手,原因是Shuffle读操作需要从多个Map节点拉取数据到Reduce节点,所有的Reduce结果是否还要经过一次总计算? package spark.examplesimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport ...原创 2015-01-25 11:32:43 · 233 阅读 · 0 评论 -
【Spark二九】涂鸦
涂鸦一1. Spark为什么如此之外a.基于内存Spark将数据加载到内存中之后,此后的计算都在内存中进行,这就非常适合递归迭代的计算任务,同时对交互式即席查询型任务也能做到将数据加载到内存中,如下图所示。b. DAGSpark在内部将对数据的操作绘制成一张有向无环图,只有在真正需要结果的时候,才对数据依次执行这些操作。也就是说,在有向无环图中,除非需要结果而不得不进行计...原创 2015-01-25 15:28:01 · 129 阅读 · 0 评论 -
【Spark二十九】Driver
在Spark Standalone集群模式下,Driver运行在客户端,所谓的客户端就是提交代码的那台机器。在Standalone模式下,角色包括:Driver(Client,这里的Client对应到Spark的代码中是AppClient吗?)如下图所示,Driver位于提交代码的那台机器(提交代码的机器是Client),MasterWorker(Worker是一个进程,它其中会有多...原创 2015-01-26 00:18:18 · 389 阅读 · 0 评论 -
【Spark三十】Hash Based Shuffle之一Shuffle Write + NoConsolidationFiles
在Spark1.2的时候,Spark将默认基于Hash的Shuffle改为了默认基于Sort的Shuffle。那么二者在Shuffle过程中具体的Behavior究竟如何,Hash based shuffle有什么问题,Sort Based Shuffle有什么问题,先看源代码分析下Hash Based Shuffle的流程,然后在从大方面去理解,毕竟,看代码是见数目不见森林。等见了树木之...原创 2015-01-26 21:21:50 · 174 阅读 · 0 评论 -
【Spark三十一】SparkSubmit兼谈Spark的集群模式
Spark的部署和Application提交方式会按照Cluster Manager和Deploy Mode进行划分。。。以前只知道Spark的Cluster部署分为Standalone、YARN和Mesos。。。 关于Cluster Manager和Deploy Mode的组合在SparkSubmit.scala的createLaunchEnv中有比较详细的逻辑。Cluster ...原创 2015-01-28 01:01:02 · 303 阅读 · 0 评论 -
【Spark三十二】Spark的集群管理和部署模式
AppClient是Cluster Manager为集群(Standalone集群或者YARN集群或者local),deployMode是Client的情况deploy.Client是Cluster Manager为Standalone集群,而deployMode为cluster的情况yarn.Client是Cluster Manager为YARN集群,而deployMode为cl...原创 2015-01-29 01:34:31 · 148 阅读 · 0 评论 -
【Spark三十三】Spark Sort based Shuffle
1. N个partition,会产生N个MapTask,如果不指定ReduceTask的个数,那么默认情况下,ReduceTask个数也为N2. N个partition,即N个MapTask,同时有N个ReduceTask(默认是N,不指定ReduceTask个数的情况下),那么会产生不大于N的.data文件以及不大于N的index文件。即文件个数不受ReduceTask个数的影响。...原创 2015-01-29 21:51:15 · 157 阅读 · 0 评论 -
【Spark三十四】Standalone集群+Cluster部署模式下用户提交任务的执行流程
standalone-Cluster模式下application提交到执行的流程SparkSubmit提交程序通过sparkSubmit命令提交执行SparkSubmit的main函数,在SparkSubmit的main函数中调用createLaunchEnv方法,这个方法用于解析当前用户作业提交命令中包含的集群管理器和Driver部署模式,以及命令参数,对环境进行解析环境解...原创 2015-01-30 15:19:27 · 279 阅读 · 0 评论 -
【Spark三十五】Standalone集群+Client部署模式下用户提交任务的执行流程
通过spark-sumbit提交Standalone集群+Clientr部署模式下的程序的流程 spark-submit提交程序SparkSubmit相应提交程序请求由于是standalone集群+部署模式(deployMode)是client的方式,因此逻辑执行到在SparkSubmit的main方法里通过反射构造应用的class的main函数程序执行到程序的main函...原创 2015-01-31 13:14:17 · 280 阅读 · 0 评论 -
【Spark三十六】Spark On Yarn之yarn-client方式部署
按照Spark的部署设置,对于Spark运行于Yarn之上,有如下四种选择方式(本质上是两种),yarn-client+clientyarn-cluster+clusteryarn-client(部署方式默认为client)yarn-cluster(部署方式默认为cluster)yarn-client+cluster组合以及yarn-cluster+client是不正确...原创 2015-01-31 16:09:55 · 665 阅读 · 0 评论 -
【Spark三十七】Spark Cache机制
今天状态很差,很困,无精打采。学到的Spark知识,没有连贯起来,很多知识点有印象但是很模糊,说不出个123来。本来今天要看看cache,checkpoint和broadcast,结果今天到现在为止已经是5点了,还没有任何的进展。开始硬着头皮把Spark的Cache机制搞一搞吧,发现,cache机制比想象中的难驾驭。 调用reduceByKey对应的ShuffledRDD对应的...原创 2015-02-01 17:35:53 · 544 阅读 · 0 评论 -
【Spark三十八】Spark Checkpoint机制
SparkContext中对于checkpoint的操作 def runJob[T, U: ClassTag]( rdd: RDD[T], func: (TaskContext, Iterator[T]) => U, partitions: Seq[Int], allowLocal: Boolean, re...原创 2015-02-02 14:07:09 · 154 阅读 · 0 评论 -
【Spark三十九】Spark比Hadoop速度快的原因总结
Spark的速度比Hadoop快将近100倍,原因都有哪些,本文进行归纳总结 Spark计算速度远胜于Hadoop的原因之一就在于中间结果是缓存在内存而不是直接写入到disk,见http://www.cnblogs.com/hseagle/p/3673138.htmlBroadcast机制CacheCheckpointSpark的计算模型 Hadoop...原创 2015-02-03 10:32:21 · 1739 阅读 · 0 评论