自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 spark-core_30:Executor初始化过程env.blockManager.initialize(conf.getAppId)源码分析

在(spark-core_28及spark-core_29:Executor初始化过程env.blockManager.initialize(conf.getAppId)-NettyBlockTransferService.init()源码分析)分析了NettyBlockTransferService.init()做了如下四件事/**NettyBlockTransferService.init(t...

2018-05-23 15:10:29 353

原创 spark-core_29:blockManager.initialize()=》NettyBlockTransferService.init()-NettyServer创建源码分析

上一节(spark-core_28:Executor初始化过程env.blockManager.initialize(conf.getAppId)- NettyBlockTransferService.init()源码分析)分析了a、NettyBlockRpcServer是用于打开的上传注册在BlockManager中的Block块b,TansportConf:会通过它成员:ConfigProvi...

2018-05-23 15:06:22 454

原创 spark-core_28:Executor初始化过程env.blockManager.initialize(conf.getAppId)- blockTransferService.init()分析

查看(spark-core_25:Master通知Worker启动CoarseGrainedExecutorBackend进程及CoarseGrainedExecutorBackend初始化源码分析)//sparkContext在初始化时也调用了_env.blockManager.initialize(_applicationId)执行的过程差不多 private[spark] class Blo...

2018-05-23 15:00:57 346

原创 spark-core_27: DAGScheduler的初始化源码分析

1,SparkContext在初始完成SparkDeploySchedulerBacked和TaskSchedulerImpl,就开始初始化DAGScheduler,并将TaskSchedulerImpl、MapOutputTrackerMaster、BlockManagerMaster,设置到它的成员上  * 1,DAGScheduler面向stage的高级调度层。 它计算每个Job的DAG(一...

2018-05-23 14:52:46 216

原创 spark-core_25:Master通知Worker启动CoarseGrainedExecutorBackend进程及初始化源码分析

承接上文(spark-core_24:AppClient的ClientEndpoint注册RegisterApplication)上文中提到:master调用launchExecutor(){worker.endpoint.send(LaunchExecutor(masterUrl,    exec.application.id, exec.id,exec.application.desc, ex...

2018-05-23 14:44:47 965

原创 spark-core_24:注册RegisterApplication,schedule()分配worker的资源,启动CoarseGrainedExecutorBackend源码分析

基于上文(spark-core_23: TaskSchedulerImpl.start()、SparkDeploySchedulerBackend.start()、CoarseGrainedExecutorBackend.start()、AppClient.start()源码分析)11,AppClient初始化ClientEndpoint初始化时调用tryRegisterAllMasters,触发...

2018-05-22 16:36:13 340

原创 spark-core_23: TaskSchedulerImpl.start()、SparkDeploySchedulerBackend.start()、AppClient.start()源码分析

1,在sparkContext初始化完createTaskScheduler()调用TaskSchedulerImpl.start()//在TaskSchedulerImpl在DAGScheduler的构造函数中设置DAGScheduler引用后启动TaskScheduler_taskScheduler.start()2,进入TaskSchedulerImpl.start()方法override ...

2018-05-22 16:24:06 321

原创 spark-core_22: SparkDeploySchedulerBackend,TaskSchedulerImpl的初始化源码分析

1,  在sparkContext初始时会执行// Create and startthe scheduler,这个master是在sparkSubmit.Main方法得到:spark://luyl152:7077,luyl153:7077,luyl154:7077//如果集群管理器是standalone模式:该方法返回(SparkDeploySchedulerBackend,TaskSchedu...

2018-05-22 16:15:20 335

原创 spark-core_21: SortShuffleManager的初始化源码分析

1,SparkEnv初始过时,通过反射的方式默认将SortShuffleManager实例化出来// Let the userspecify short names for shuffle managers//使用sort shuffle做为mapper和reducer网络传输val shortShuffleMgrNames = Map(  "hash" -> "org.apache.spa...

2018-05-22 16:10:31 290

原创 spark-core_20: MapOutputTrackerMaster、MapOutputTracker、MapOutputTrackerMasterEndpoint等源码分析

1,在SparkEnv.create()初始化了MapOutputTrackerMaster(记录ShuffleMapTask输出信息)val mapOutputTracker = if (isDriver) {  /* MapOutputTrackerMaster属于driver,这里使用TimeStampedHashMap来跟踪 map的输出信息,也可以将旧信息进行清除    * 一、MapO...

2018-05-22 16:05:43 2466

原创 spark-core_19:ActorSystem的初始化源码分析

1,在SparkEnv再创建时调用create(),里面调用初始ActorSystem注:ActorSystem在后面版本会被RpcEnv替换掉private def create(    conf: SparkConf,    executorId: String,    hostname: String,    port: Int,    isDriver: Boolean,    isLoc...

2018-05-22 15:52:58 331

原创 spark-core_18:Akka分布式通信案例

Scala认为Java线程通过共享数据以及通过锁来维护共享数据的一致性是糟糕的做法,容易引起锁的争用,而且线程的上下文切换会带来不少开销,降低并发程序的性能,甚至会引入死锁的问题。Akka是Actor编程模型的高级类库,类似于JDK 1.5之后越来越丰富的并发工具包,简化了程序员并发编程的难度。Akka是一款提供了用于构建高并发的、分布式的、可伸缩的、基于Java虚拟机的消息驱动应用的工具集和运行...

2018-05-22 15:45:05 454

原创 spark-core_17:自定义RpcEnv模拟Master和Worker通信及RpcEnv、RpcEndpoint、RpcEndpointRef源码分析

RpcEnv底层就是Netty实现一、自定义RpcEnv模拟Master和Worker进行通信1、自定义的RpcEndPoint,需要实现RpcEndPoint//自定义的RPC实现ThreadSafeRpcEndpoint,说明它是线程安全的class TestMathEndpoint(override val rpcEnv: RpcEnv) extends ThreadSafeRpcEndpo...

2018-05-22 15:30:51 461

原创 spark-core_16:初始化Driver的SparkEnv

1,通过SparkContext初始化时调用createSparkEnv()==>然后调用SparkEnv.createDriverEnv()来初始化SparkEnv对象/** * Create a SparkEnv for the driver.  * 该方法被SparkContext.createSparkEnv()方法进行调用  * numCores:如果master是local...

2018-05-22 15:24:18 434

原创 spark-core_15:sparkContext初始化源码分析

这幅图是网友提供的,非常感谢/** * Main entry point for Sparkfunctionality. A SparkContext represents the connection to a Spark cluster, andcan be used to create RDDs, accumulators and broadcast variables on thatclu...

2018-05-22 15:16:53 611

原创 spark-core_14:Worker源码分析2-Worker与Master通信

承接上文,在上文中Worker的onStart(){。。。。registerWithMaster() 。。。}将自己的信息注册到Master上private def registerWithMaster() {  // onDisconnected may be triggered multiple times, so don't attempt registration  // if the...

2018-03-27 16:30:54 236

原创 spark-core_13:Worker源码分析1-Worker初始化过程

1,从$SPARK_HOME/sbin/start-all.sh调用/sbin/start-slaves.sh,如果是不传--with-tachyon,会直接调用start-slaves.sh脚本,没有参数。(参看spark-core_05:$SPARK_HOME/sbin/start-all.sh、start-master.sh脚本分析)2,$SPARK_HOME/sbin/start-slav...

2018-03-27 16:23:51 254

原创 spark-core_12:org.apache.spark.deploy.master.Master源码解析4-- 如何清理超时的Woker及zk是如何选举

承接上文,回到Master的onStart的方法体中    // masterWebUiUrl 值 http://luyl152:8080    masterWebUiUrl = "http://" + masterPublicAddress + ":" + webUi.boundPort    //启动定时器,定时发送信息,检查worker的状态    checkForWorkerTim...

2018-03-26 21:41:32 279

原创 spark-core_11:org.apache.spark.deploy.master.Master源码解析3--MasterWebUI(MasterRpcEndPoint,8080)初始化web

承接上文分析一下newMasterWebUI(MasterRpcEndPoint,8080):它的主要作用就是将每个页面的html以scala.xml.Node的形势封装放在serlvet中,然后再将servlet放到servletContextHandler中,供jetty.Server使用/** * Web UI server for the standalonemaster.  * 实现抽象...

2018-03-26 21:35:04 346

原创 spark-core_10: org.apache.spark.deploy.master.Master源码解析2--Master这个RpcEndPoint是如何初始化Master

承接上文/**  * RpcEndpoint的生命周期又是: onStart -> receive(receiveAndReply)* -> onStop  * 这个MasterRpcEndpoint是线程安全的  */private[deploy] class Master(    override val rpcEnv: RpcEnv,    address: RpcA...

2018-03-26 21:27:32 439

原创 spark-core_09: org.apache.spark.deploy.master.Master源码解析1

1,先是start-all.sh调用start-master.sh(查看spark-core_05:$SPARK_HOME/sbin/start-all.sh、start-master.sh脚本分析)。而start-master.sh 使用如下脚本调用spark-deamon.shspark-daemon.sh start org.apache.spark.deploy.master.Master...

2018-03-26 21:19:56 725

原创 spark-core_08: $SPARK_HOME/sbin/slaves.sh、start-slave.sh脚本分析

承接上面“spark-core_07: $SPARK_HOME/sbin/start-slaves.sh脚本分析”一、这是$SPARK_HOME/sbin/slaves.sh脚本;#!/usr/bin/envbash #Run a shell command on all slave hosts.#Environment Variables#   SPARK_SLAVES    File nami...

2018-03-16 16:42:17 810

原创 spark-core_07: $SPARK_HOME/sbin/start-slaves.sh脚本分析:

承接“spark-core_05: $SPARK_HOME/sbin/start-all.sh、start-master.sh脚本分析”,在spark-all.sh脚本中会调用start-slaves.sh来启Worker节点 #!/usr/bin/envbash#Starts a slave instance on each machine specified in the conf/slave...

2018-03-16 16:30:40 341

原创 spark-core_06: $SPARK_HOME/sbin/spark-daemon.sh脚本分析

承接上面“spark-core_05: $SPARK_HOME/sbin/start-all.sh、start-master.sh脚本分析”#!/usr/bin/envbash #Runs a Spark command as a daemon. 将Spark命令作为守护进程运行。##Environment Variables #   #   SPARK_CONF_DIR  Alternate c...

2018-03-16 16:26:09 892

原创 spark-core_05: $SPARK_HOME/sbin/start-all.sh、start-master.sh脚本分析:

一、这是$SPARK_HOME/sbin/start-all.sh脚本#!/usr/bin/envbash # Start all spark daemons. 后台启动所有spark节点,将master在这个节点中启动,worker节点是通过conf/slaver来决定的#Starts the master on this node.#Starts a worker on each node s...

2018-03-16 16:15:18 975

原创 spark-core_04: org.apache.spark.deploy.SparkSubmit源码分析:

承接上文“org.apache.spark.launcher.Main源码分析“SparkSubmitArgumentsParser的父类就SparkSubmitOptionParser,在launcher.Main方法执行时用到OptionParser 它的父类也是SparkSubmitOptionParser。并且这个父类有一个方法parser。作用将spark-submit放进来的参数对应值...

2018-03-14 18:57:17 1277

原创 spark-core_03: org.apache.spark.launcher.Main源码分析

承接上文“spark-core_02: spark-submit、spark-class脚本分析“launcher.Main主要作用是就是检测,注入spark-submit参数到spark环境中,然后返回SparkSubmit需要执行的参数,给spark-class脚本中的exec "${CMD[@]}"进行执行class Main {  public static void main(Stri...

2018-03-14 17:48:25 1029

原创 spark-core_01: $SPARK_HOME/bin/spark-shell

sparkshell脚本的作用:调用spark-submit脚本,并给spark-submit脚本 带上参数如下参数--classorg.apache.spark.repl.Main --name "Spark shell" "$@" 具体流程是:#1 捕获终端信号,执行退出方法,恢复一些操作#2 保存终端配置,当cygwin时关闭回显,之后再恢复#3 执行spark-submit,调用repl....

2018-03-14 14:49:47 1582

原创 spark-core_02: $SPARK_HOME/bin/spark-submit、spark-class脚本分析

继承上文“spark-core_01: $SPARK_HOME/bin/spark-shell脚本分析”一,$SPARK_HOME/bin/spark-submit#################################################从spark-shell调用之后,传进来--class org.apache.spark.repl.Main --name "Spark ...

2018-03-14 14:44:50 1779

原创 SparkStreaming案例:NetworkWordCount--ReceiverInputDstream的compute方法如何取得Socket预先存放在BlockManager中的数据

1, 还是从这个案例开始object NetworkWordCount {  def main(args: Array[String]) {    if (args.length < 2) {      System.err.println("Usage: NetworkWordCount <hostname> <port>")      System.exi...

2018-02-26 15:52:41 444

原创 SparkStreaming案例:NetworkWordCount--ReceiverSupervisorImpl中的startReceiver(),Receiver如何将数据store到RDD

接着上文“ReceiverSupervisorImpl.onStart()如何得到Reciver的数据写到spark的BlockManager中”往下分析startReceiver()方法1,supervisor.start()该方法是启动Receiver开始在Executor上接收数据的入口start()方法是在ReceiverSupervisorImpl的父类ReceiverSuperviso...

2018-02-24 16:11:40 410

原创 SparkStreaming案例:NetworkWordCount--ReceiverSupervisorImpl.onStart()如何将Reciver数据写到BlockManager中

上文提到“ReceiverInputDstream的Receiver是如何被放到Executor上执行的”关键代码ReceiverSupervisorImpl的start方法。 val startReceiverFunc: Iterator[Receiver[_]] => Unit =  (iterator: Iterator[Receiver[_]]) => {    if (!...

2018-02-09 15:27:59 338

原创 SparkStreaming案例:NetworkWordCount--ReceiverInputDstream的Receiver是如何被放到Executor上执行的?

1, 还是从案例开始顺藤摸瓜object NetworkWordCount {  def main(args: Array[String]) {    if (args.length < 2) {      System.err.println("Usage: NetworkWordCount <hostname> <port>")      System.e...

2018-02-09 14:55:31 488

原创 SparkStreaming案例:NetworkWordCount--spark如何使用ListenerBus实现类似js监听事件效果

1, 还是从案例开始顺藤摸瓜object NetworkWordCount {  def main(args: Array[String]) {    if (args.length < 2) {      System.err.println("Usage: NetworkWordCount <hostname> <port>")      System.e...

2018-02-09 11:52:17 393

原创 SparkStream例子HdfsWordCount--Streaming的Job是如何调度的

上一篇“SparkStream例子HdfsWordCount--从Dstream到RDD全过程解析”解析了每个Dstream周期内,是如何生成的RDD的。该篇描述一下RDD变成Streaming的Job之后,如何到Executor上面执行开发者写的foreachFunc(rdd,time)的过程。四、     Streaming的Job是如何进行调度执行的? 1, 在DstreamGr

2018-01-09 14:51:58 212

原创 SparkStream例子HdfsWordCount--InputDStream及OutputDstream是如何进入DStreamGraph中

先分析一下Dstream的子类:A,从上图可以发现子类InputDstream都是属于数据源Dstream;InputDStream分成两个类型,一种是ReceiverInputDstream,一种不需要实现ReceiverInputDstream.如FileInputDStream。B,上图中ForEachDStream就是OutputDstream:所有output算子最终都会调用到这

2018-01-09 14:46:21 767

原创 SparkStream例子HdfsWordCount--从Dstream到RDD全过程解析

上一篇SparkStream例子HdfsWordCount--InputDStream及OutputDstream是如何进入DStreamGraph中:分析了InputDstream及OutputDstream如何进入DStreamGraph,这个单元分析一下FileInputDstream如何生成的RDD.三、     FileInputDStream是如何生成RDD的呢? 1,入口是咱

2018-01-04 17:51:43 408

原创 SparkStream源码分析:JobScheduler的JobStarted、JobCompleted是怎么被调用的

一,从StreamingContext.start()进入===>在SparkContext有一个JobScheduler成员会被初始化,JobScheduler会被StreamingContext.start()被调用private[streaming]val scheduler =new JobScheduler(this)二,跟进入JobScheduler的s

2017-12-21 19:42:14 358

postgresql-13.2-1-windows-x64.exe如何安装到window及问题解决

解决:win10安装Postgresql 错误解决方案 Failed to load sql modules into the database cluster的错误

2021-03-16

sublime3及注册码

Sublime Text Build 3126 x64 Setup及注册码,都可以用的

2018-05-22

protobuf3.5

google的Protobuffer转换数据结构成源码的proto工具,包括:windows和liunx的

2018-05-22

jtbcEditHTML编辑器

现在的编辑器一般主要分为2种,1种是非所见所得的UBB编辑器,1种是所见即所得的HTML编辑器,非所见所得的UBB编辑器虽然在编辑时不方便直接看到效果,但以其安全的特性依然在很多系统中广泛使用,而HTML编辑器虽然做到的所见即所得,但如果将它用在前台网站,则又需要一个强大的HTML过滤机制,否则您的网站就会存在很大风险,很有可能因为一个小小的失误而搞的自己焦头烂额,所以,jtbcEditor 产生了,它是一款所见即所得的UBB编辑器,整合了时下2种编辑器的优点,非常适合在网站的前台使用。

2013-03-31

空空如也

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

TA关注的人

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