自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 【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 680

原创 【Spark三十五】Standalone集群+Client部署模式下用户提交任务的执行流程

通过spark-sumbit提交Standalone集群+Clientr部署模式下的程序的流程 spark-submit提交程序SparkSubmit相应提交程序请求由于是standalone集群+部署模式(deployMode)是client的方式,因此逻辑执行到在SparkSubmit的main方法里通过反射构造应用的class的main函数程序执行到程序的main函...

2015-01-31 13:14:17 292

原创 【Spark三十四】Standalone集群+Cluster部署模式下用户提交任务的执行流程

standalone-Cluster模式下application提交到执行的流程SparkSubmit提交程序通过sparkSubmit命令提交执行SparkSubmit的main函数,在SparkSubmit的main函数中调用createLaunchEnv方法,这个方法用于解析当前用户作业提交命令中包含的集群管理器和Driver部署模式,以及命令参数,对环境进行解析环境解...

2015-01-30 15:19:27 291

原创 【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 166

原创 【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 158

原创 【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 319

原创 【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 189

原创 【Spark二十九】Driver

在Spark Standalone集群模式下,Driver运行在客户端,所谓的客户端就是提交代码的那台机器。在Standalone模式下,角色包括:Driver(Client,这里的Client对应到Spark的代码中是AppClient吗?)如下图所示,Driver位于提交代码的那台机器(提交代码的机器是Client),MasterWorker(Worker是一个进程,它其中会有多...

2015-01-26 00:18:18 421

原创 【Spark二九】涂鸦

 涂鸦一1. Spark为什么如此之外a.基于内存Spark将数据加载到内存中之后,此后的计算都在内存中进行,这就非常适合递归迭代的计算任务,同时对交互式即席查询型任务也能做到将数据加载到内存中,如下图所示。b. DAGSpark在内部将对数据的操作绘制成一张有向无环图,只有在真正需要结果的时候,才对数据依次执行这些操作。也就是说,在有向无环图中,除非需要结果而不得不进行计...

2015-01-25 15:28:01 137

原创 【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 242

原创 【Scala】分析Spark源代码总结的Scala语法三

1.import org.apache.spark.SparkContext._表示引用SparkContext类里面的所有成员import org.apache.spark._表示应用org.apache.spark包下的所有类import org.apache.spark.{SparkConf, SparkContext}表示同一个包下的多个类,可以写到一起im...

2015-01-25 00:36:22 224

原创 【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 286 1

原创 【Scala五】分析Spark源代码总结的Scala语法三

1. If语句作为表达式 val properties = if (jobIdToActiveJob.contains(jobId)) { jobIdToActiveJob(stage.jobId).properties } else { // this stage will be assigned to "default" pool ...

2015-01-24 10:44:23 134

原创 【Scala四】分析Spark源代码总结的Scala语法二

1. Some操作 在下面的代码中,使用了Some操作:if (self.partitioner == Some(partitioner)),那么Some(partitioner)表示什么含义?首先partitioner是方法combineByKey传入的变量,Some的文档说明: /** Class `Some[A]` represents existing values...

2015-01-22 02:34:12 263

原创 【Scala三】分析Spark源代码总结的Scala语法一

Scala语法1. classOf运算符Scala中的classOf[T]是一个class对象,等价于Java的T.class,比如classOf[TextInputFormat]等价于TextInputFormat.class  2. 方法默认值defaultMinPartitions就是一个默认值,类似C++的方法默认值   def textFile(pa...

2015-01-21 22:05:02 294

原创 【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 114

原创 【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 138

原创 【Spark二四】Spark内核源码剖析

Spark内核源码非常复杂,同时也是Spark的精髓所在,目前只做记录所学的点点滴滴,回头再整理总结。 RDD,DAGScheduler,TaskScheduler,WorkerSpark根据应用程序的算子(转换算子,行动算子)生成一张DAG图,比如rdd1.join(rdd2).groupBy(..).filter(..)。DAGScheduler对于RDD,在遇到涉及Shuff...

2015-01-18 13:07:15 296

原创 【Spark二十三】未分类

什么是DAGDAG是有向无环图,它的功能是在Spark运行应用程序(Application)时,首先建立一个有向无环图(DAG),图上的每个节点是一个操作,而Spark的操作分为两类,一类是Transform,一类是Action。在应用程序执行过程中,只有遇到Action类的操作时,才会出发作业(Job)的提交。一个应用程序可以包含多个作业。在提交作业后,首先根据DAG计算这个作业包含哪些...

2015-01-15 22:00:18 141

原创 【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 960

原创 【Scala二】Scala集合

TBD      本文翻译自http://twitter.github.io/scala_school/collections.html

2015-01-11 17:17:16 123

原创 【Kafka一】Kafka入门

这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧 下载Kafka http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz 2.10表示Scala的版本,而0.8.1.1表示Kafka的版...

2015-01-11 16:38:28 366

原创 【Spark二一】Spark Streaming结合Kafka

本篇运行Spark Streaming自带的例子KafkaWorkCount,为运行这个例子,需要搭建环境,具体的讲,需要安装运行Kafka安装运行Zookeeper(因为Kafka的运行依赖于Zookeeper以注册Topic到Zookeeper上)   ---,除了安装运行独立的Zookeeper,Kafka也可以使用安装包里的Zookeeper,如果Kafka要使用自己的Zoo...

2015-01-11 13:32:55 667

原创 【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 744

原创 【Spark十九】Spark on YARN部署

不知不觉,已经到了Spark的第19篇博客了,这个系列很不系统,基本上是学到哪写到哪,而不是成竹在胸之后,高屋建瓴的写,这个等到对Spark有了比较深刻的理解和把握之后再来整理这些博客,毕竟刚接触Spark10天,继续!在之前的文章中,Spark都是使用默认的伪分布式部署方式,没有从系统部署的角度去审视Spark,目前的状态是能运行Spark能跑通例子的程度,在此之前,Spark的配置文件...

2015-01-10 20:06:03 420

原创 【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 418

原创 【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 503

原创 【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式

Spark SQL数据源和表的Schemacase classapply schemaparquetjsonJSON数据源准备源数据{"name":"Jack", "age": 12, "addr":{"city":"beijing", "zipcode":"111"}}{&q

2015-01-10 12:07:36 603

原创 【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 246

原创 【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 139

原创 【Spark十三】一张图介绍Spark

一张图介绍Spark   

2015-01-05 22:45:18 181

原创 【Spark十二】Spark任务调度和作业执行流程初步

任务调度以及作业执行流程是Spark的核心,本文不进行源码级别的探究,只是概述Spark的核心组件、它们的作用以及它们如何协作以完成计算作业。 Spark核心组件SparkContextJobRDDDAGSchedulerDAGTaskSchedulerStageTaskSetTaskBlockManagerBlockTrackerSh...

2015-01-04 22:44:39 437

原创 【Spark十一】Spark集群基本架构及相关术语

Spark组织的不是很合理,到这时才说到Spark集群的基本架构。原因是,前面的篇幅更多的是在Spark Shell上体验Spark API,以及对RDD一些粗浅的认识。没事,本着由粗糙到精细的原则,一步一步来,最后再把整个Spark相关的博客整理下,使之有条理,目前只是记录学习的过程。 Spark Cluster Overview     下面对上图进行解释:Sp...

2015-01-04 22:14:35 139

原创 【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 143

原创 【Spark】Spark九: 深入Spark RDD第二部分RDD依赖与运行时

在Spark中, RDD是有依赖关系的,这种依赖关系有两种类型窄依赖(Narrow Dependency)宽依赖(Wide Dependency)以下图说明RDD的窄依赖和宽依赖  窄依赖窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,表现为一个父RDD的分区对应于一个子RDD的分区两个父RDD的分区对应于一个子RDD 的分区。如上面的...

2015-01-03 17:47:45 146

原创 【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 163

原创 【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 300

原创 【Spark】Spark七: Spark概述

在前面几篇博客里,介绍了Spark的伪分布式安装,以及使用Spark Shell进行交互式操作,本篇博客主要是对Spark整体上进行梳理。 Spark的几个特点Spark是基于内存的计算,比基于磁盘的Hadoop Map Reduce快了百倍的数量级Spark MapReduce操作更丰富更灵活Spark通过一个技术栈,提供完整的针对大数据计算的生态系统Spark速...

2015-01-03 10:44:16 749

原创 【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 237

原创 【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 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除