spark源码解析之scala基本语法】的更多相关文章

1. scala初识 spark由scala编写,要解析scala,首先要对scala有基本的了解. 1.1 class vs object A class is a blueprint for objects. Once you define a class, you can create objects from the class blueprint with the keyword new. import java.io._ class Point(val xc: Int, val yc…
上篇文章<  Spark 源码解析 : DAGScheduler中的DAG划分与提交 >介绍了DAGScheduler的Stage划分算法. 本文继续分析Stage被封装成TaskSet,并将TaskSet提交到集群的Executor执行的过程 在DAGScheduler的submitStage方法中,将Stage划分完成,生成拓扑结构,当一个stage没有父stage时候,会调用DAGScheduler的submitMissingTasks方法来提交该stage包含tasks. 首先来分析一…
1.环境搭建 基础环境配置 jdk+idea+maven+scala2.11.以上工具安装配置此处不再赘述. 2.源码导入 官网下载spark源码后解压到合适的项目目录下,打开idea,File->open 找到源码文件夹,选中spark-parent的pom文件,确定-> open as a project.接下来就是漫长的依赖解析过程. 3.依赖解析完成后,得到一个漂亮的spark项目 4. 尝试编译.最近需要用到spark-sql相关的东西,我们先尝试编译一下spark-sql,在ide…
一.Spark 运行架构 Spark 运行架构如下图: 各个RDD之间存在着依赖关系,这些依赖关系形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分.完成了Stage的划分,DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler.TaskScheduler 负责具体的task调度,在Worker节点上启动ta…
/** * 如果有这些语法的支持,我们说这门语言是支持面向对象的语言 * 其实真正面向对象的精髓是不是封装.继承.多态呢? * --->肯定不是,封装.继承.多态,只不过是支撑面向对象的 * 一些语言级别的语法和功能,真正的面向对象其实有三个核心特征: * 第一:对象不用关心消息从哪里来,也不关心消息到哪去,只关心消息处理本身 * ,也就是说面向对象是弱耦合的且对象是消息驱动的,或者说对象是数据驱动的 * 第二:一个对象的行为不影响另一个对象的行为,一个对象挂掉了另一个对象 * 不会随着它一起挂…
  第1章 Spark 整体概述 1.1 整体概念   Apache Spark 是一个开源的通用集群计算系统,它提供了 High-level 编程 API,支持 Scala.Java 和 Python 三种编程语言.Spark 内核使用 Scala 语言编写,通过基于 Scala 的函数式编程特性,在不同的计算层面进行抽象,代码设计非常优秀. 1.2 RDD 抽象   RDD(Resilient Distributed Datasets),弹性分布式数据集,它是对分布式数据集的一种内存抽象,通…
1.准备工作 1.1 安装spark,并配置spark-env.sh 使用spark-shell前需要安装spark,详情可以参考http://www.cnblogs.com/swordfall/p/7903678.html 如果只用一个节点,可以不用配置slaves文件,spark-env.sh文件只需配置为master_ip和local_ip两个属性 spark-env.sh添加如下配置: export SPARK_MASTER_IP=hadoop1 export SPARK_LOCAL_I…
从两方面来阐述spark的组件,一个是宏观上,一个是微观上. 1. spark组件 要分析spark的源码,首先要了解spark是如何工作的.spark的组件: 了解其工作过程先要了解基本概念 官方罗列了一些概念: Term Meaning Application User program built on Spark. Consists of a driver program and executors on the cluster. Application jar A jar contain…
本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 ------------------------------------------------------------------------------------------------------------------------ /** * 大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: * 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储现在比较经典的是使用Hadoop, * …
Scala函数式编程 ------------------------------------------------------------------------------------------------------------------------/** * 函数可以被简单的被认为是包裹了一条或几条语句的代码体, * 该代码体接收若干参数,经过代码体处理后返回结果, * 刑如数学中的f(x) = x + 1 *  * 在Scal中函数式一等公民,可以像变量一样被传递,被赋值,同时 …