1.构建master的actor package SparkRPC import akka.actor.{Actor, ActorSystem, Props}import com.typesafe.config.ConfigFactory import scala.collection.mutable /** * Created by hqs on 2018/1/24. * 1.启动master,启动worker * 2.worker启动后连接master,发送注册消息(封装起来) * 3.ma…
继续上一篇的内容.上一篇的内容为: Spark中Master源码分析(一) http://www.cnblogs.com/yourarebest/p/5312965.html 4.receive方法,receive方法中消息类型主要分为以下12种情况: (1)重新选择了新Leader,进行数据的恢复 (2)恢复完毕,重新创建Driver,完成资源的重新分配 (3)触发Leadership的选举 (4)Master注册新的Worker (5)Master注册新的App,然后重新分配资源 (6)Ex…
启动hadoop再启动spark后jps,发现master进程和worker进程同时存在,调试了半天配置文件. 测试发现,当我关闭hadoop后 worker进程还是存在, 但是,当我再关闭spark之后再jps,发现worker进程依旧存在 于是想起了在~/spark/conf/slaves 中配置的slave1 slave2 上面还有个localhost,直接删去localhost,然后kill -s 9  worker进程. 初次测试这样解决了error,但是不知道是不是暂时的,如若有问题…
Master作为集群的Manager,对于集群的健壮运行发挥着十分重要的作用.下面,我们一起了解一下Master是听从Client(Leader)的号召,如何管理好Worker的吧. 1.家当(静态属性) 1.设置一个守护单线程的消息发送器, private val forwardMessageThread = ThreadUtils.newDaemonSingleThreadScheduledExecutor("master-forward-message-thread") 2.根据…
http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mesos YARN EC2 Local 在向集群提交计算任务后,系统的运算模型就是Driver Program定义的SparkContext向APP Master提交,有APP Master进行计算资源的调度并最终完成计算.具体阐述可以阅读<Spark:大数据的电花火石!>. 那么Standalone…
Spark的Cluster Manager能够有几种部署模式: Standlone Mesos YARN EC2 Local 在向集群提交计算任务后,系统的运算模型就是Driver Program定义的SparkContext向APP Master提交,有APP Master进行计算资源的调度并终于完毕计算.具体阐述能够阅读<Spark:大数据的电花火石!>. 那么Standalone模式下,Client.Master和Worker是怎样进行通信,注冊并开启服务的呢? 1. node之间的RP…
Worker作为对于Spark集群的健壮运行起着举足轻重的作用,作为Master的奴隶,每15s向Master告诉自己还活着,一旦主人(Master>有了任务(Application),立马交给属于它的奴隶们(Workers),那么奴隶们就会数数自己有多少家当(比如内存.核数),量力而行地交给主人完成的任务,如果奴隶不量力而行在执行任务过程中不幸死了的话,作为主人的Master只会等待60s,如果奴隶在这生死攸关的紧要关头不理睬主人,那么主人只能认为它死了,那么就会把它抛弃了.下面,我们一起了解…
继续前一篇的内容.前一篇内容为: Spark中Worker源码分析(一)http://www.cnblogs.com/yourarebest/p/5300202.html 4.receive方法, receive方法主要分为以下14种情况: (1)worker向master注册成功后,详见代码 (2)worker向master发送心跳消息,如果还没有注册到master上,该消息将被忽略,详见代码 (3)worker的工作空间的清理,详见代码 (4)更换master,详见代码 (5)worker注…
Master.preStart(){ webUi.bind() context.system.scheduler.schedule( millis, WORKER_TIMEOUT millis, self, CheckForWorkerTimeOut) //定时任务检测是否有DEAD WORKER需要移除 case CheckForWorkerTimeOut => { timeOutDeadWorkers() } /** Check for, and remove, any timed-out…
Spark 中 RPC 部分的涉及了几个类,有点晕,在此记录一下 1. RpcEndpoint: RPC的一个端点.给定了相应消息的触发函数.保证  `onStart`, `receive` and `onStop` 函数按顺序触发. 2. RpcEndpointRef: 一个远程的 RpcEndpoint 3. RpcEnv: RPC的环境. RpcEndpoint 需要用一个名字在 RpcEnv 进行注册用于接收消息.RpcEnv 将处理从 RpcEndpointRef 或远程发来的消息,然…
在介绍Spark中的任务和资源之前先解释几个名词: Dirver Program:运行Application的main函数(用户提交的jar包中的main函数)并新建SparkContext实例的程序,称为驱动程序,通常用SparkContext代表驱动程序(任务的驱动程序). Cluster Manager:集群管理器是集群资源管理的外部服务.Spark上现在主要有Standalone.YARN.Mesos3种集群资源管理器.Spark自带的Standalone模式能满足绝大部分 Spark计…
1. Spark中的基本概念 Application:基于Spark的用户程序,包含了一个driver program和集群中多个executor. Driver Program:运行Application的main()函数并创建SparkContext.通常SparkContext代表driver program. Executor:为某Application运行在worker node上的一个进程.该进程负责运行Task,并负责将数据存在内存或者磁盘 上.每个Application都有自己独…
继续前一篇的内容.前一篇内容为: Spark中Client源码分析(一)http://www.cnblogs.com/yourarebest/p/5313006.html DriverClient中的代码比较简单,它只有一个main函数,同时,和AppClient一样,它也有一个ClientEndpoint,只是两者的用途不一样. 1.Client Client中唯一的main方法如下: def main(args: Array[String]) { if (!sys.props.contain…
一.前述 Spark可以和Yarn整合,将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交任务的方式. 二.具体      1.yarn-client提交任务方式 配置          在client节点配置中spark-env.sh添加Hadoop_HOME的配置目录即可提交yarn 任务,具体步骤如下:            注意client只需要有Spark的安装包即可提交任务,不需要其他配置(比如slaves)!!! 提交命令   .…
一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体         1.Standalone-client提交任务方式 提交命令             ./spark-submit --master  spark://node01:7077 --class org.apache.spark.examples.SparkPi  ../lib/spark-examples-1.6.0-ha…
摘要:         Tachyon是一种分布式文件系统,能够借助集群计算框架使得数据以内存的速度进行共享.当今的缓存技术优化了read过程,可是,write过程由于须要容错机制,就须要通过网络或者是磁盘进行复制操作.Tachyon通过将"血统"技术引入到存储层进而消除了这个瓶颈.创建一个长期的以"血统机制"为基础的存储系统的关键挑战是失败情况发生的时候及时地进行数据恢复.Tachyon通过引入一种检查点的算法来解决问题,这样的方法保证了恢复过程的有限开销以及通过…
spark的主要组件和进程       driver (进程):     我们编写的spark程序就在driver上,由driver进程执行       master(进程):     主要负责资源的调度和分配,还有集群的监控       worker(进程):     主要负责     1.用自己的内存 存储RDD的某个或某些partition:     2.启动其它进程和线程,对RDD上的partition进行版型的处理和计算       executor(进程):     负责对RDD的p…
转自:http://blog.csdn.net/u014252240/article/details/41810849  发布人:南京大学PASA大数据实验室顾荣 1. Tachyon是什么 Tachyon(/'tæki:ˌɒn/ 意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,能够为集群框架(如Spark.MapReduce)提供可靠的内存级速度的文件共享服务.Tachyon诞生于UC Berkeley的AMPLab,由该实验室的李浩源童鞋初创.2012年12月,Tach…
参考:http://www.raincent.com/content-85-11052-1.html 1.Application:Spark应用程序 指的是用户编写的Spark应用程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码. Spark应用程序,由一个或多个作业JOB组成,如下图所示: 2.Driver:驱动程序 Driver负责运行Application的Main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备S…
Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一般使用stand alone /etc/init.d/ 非常少用xinetd /etc/xinetd.d/ Linux守护进程的运行方式 1.独立运行(stand-alone)的守护进程 独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下…
Spark中的Scheduler scheduler分成两个类型.一个是TaskScheduler与事实上现,一个是DAGScheduler. TaskScheduler:主要负责各stage中传入的task的运行与调度. DAGScheduler:主要负责对JOB中的各种依赖进行解析,依据RDD的依赖生成stage并通知TaskScheduler运行. 实例生成 TaskScheduler实例生成: scheduler实例生成,我眼下主要是针对onyarn的spark进行的相关分析, 在app…
首先通过一张Spark的架构图来了解Worker在Spark中的作用和地位: Worker所起的作用有以下几个: 1. 接受Master的指令,启动或者杀掉Executor 2. 接受Master的指令,启动或者杀掉Driver 3. 报告Executor/Driver的状态到Master 4. 心跳到Master,心跳超时则Master认为Worker已经挂了不能工作了 5. 向GUI报告Worker的状态 说白了,Worker就是整个集群真正干活的.首先看一下Worker重要的数据结构: v…
How to implement connection pool in spark https://github.com/YulinGUO/BigDataTips/blob/master/spark/How%20to%20implement%20connection%20pool%20in%20Spark.md 问题所在 在Spark Streaming Guid中,提到: dstream.foreachRDD { rdd => rdd.foreachPartition { partitionO…
今天,我们就先聊一下spark中的DAG以及RDD的相关的内容 1.DAG:有向无环图:有方向,无闭环,代表着数据的流向,这个DAG的边界则是Action方法的执行 2.如何将DAG切分stage,stage切分的依据:有宽依赖的时候要进行切分(shuffle的时候, 也就是数据有网络的传递的时候),则一个wordCount有两个stage, 一个是reduceByKey之前的,一个事reduceByKey之后的(图1), 则我们可以这样的理解,当我们要进行提交上游的数据的时候, 此时我们可以认…
梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数.Executor数.core数目的关系. 输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block.当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般是将若干个Block合并成一个输入分片,称为InputSplit,注意InputSplit不能跨越文件.随后将为这些输入分片生成具体的Task.Inp…
Spark中Task,Partition,RDD.节点数.Executor数.core数目的关系和Application,Driver,Job,Task,Stage理解 from:https://blog.csdn.net/u013013024/article/details/72876427   有部分图和语句摘抄别的博客,有些理解是自己的 梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数.Executor数.core…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABfEAAAJwCAYAAAAp7ysfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw…
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析>一书第一章的内容请看链接<第1章 环境准备> <深入理解Spark:核心思想与源码分析>一书第二章的内容请看链接<第2章 SPARK设计理念与基本架构> <深入理解Spark:核心思想与源码分析>一书第三章第一部分的内容请看链接<深入理解Spark:核心…
spark中,不论spark-shell还是spark-submit,都可以设置memory大小,但是有的同学会发现有两个memory可以设置.分别是driver memory 和executor memory. 从名字上大概可以猜出大概.具体就是说driver memory并不是master分配了多少内存,而是管理多少内存.换言之就是为当前应用分配了多少内存. executor memory是每个节点上占用的内存.每一个节点可使用内存. 单独设置其中一个,集群仍能正常启动. 实际应用中,初步感…
最近工作用到Spark,这里记一些自己接触到的Spark基本概念和知识. 本文链接:https://www.cnblogs.com/hhelibeb/p/10288915.html 名词 RDD:在高层,每个Spark应用包含一个driver程序,它运行用户的主函数,在集群上执行不同的并行作业.Spark中提供的主要抽象是弹性分布式数据集(resilient distributed dataset, RDD),它是分布在集群节点中的已分区的元素集合,可以被并行处理.RDD从Hadoop文件系统中…