Spark天堂之门

来源:互联网 发布:centos安装switchdesk 编辑:程序博客网 时间:2024/05/01 07:10
Spark天堂之门解密
视频学习来源:DT-大数据梦工厂 IMF传奇行动视频

本期内容:

   1、Spark天堂之门

   2、SparkContext使用案例借鉴

   3、SparkContext内幕

   4、SparkContext源码解密

 一、Spark天堂之门

   1、Spark程序在执行的时候分为Driver和Executor两部分;

   2、Spark程序的编写核心基础是RDD,具体包含两部分:

       a)是由SparkContext来最初创建第一个RDD,一定是由SparkContext来创建的;

       b)Spark程序的调度优化也是基于SparkContext;

   3Spark程序的注册要通过SparkContext实例化时候产生的对象来完成(其实是由SchedulerBackend注册程序);

   4Spark程序运行的时候要通过ClusterManager获得具体的资源,计算资源的获取也是由SparkContext产生的对象来申请的(其实   
           SchedulerBackend来获取资源的);

   5、SparkContext崩溃或者结束的整个Spark程序也结束啦!

 总结:SparkContext开启天堂之门:Spark程序是通过SparkContext发布到Spark集群的;

           SparkContext导演天堂世界:SPark程序的运行都是在SparkContext为核心的调度器下指挥下进行的;

           SparkContext关闭天堂之门:SparkContext崩溃或者结束整个Spark程序结束了;

运行Wordcount程序

三、SparkContext内幕天堂揭秘

   1、SparkContext构建的顶级三大核心对象:DAGScheduler、TaskScheduler、SchedulerBackend,其中:

           a)SchedulerBackend是面向Stage的调度器;

           b)TaskScheduler是一个接口,更加具体的Cluster Manager的不同会有不同的实现,Standalone模式下具体的实现是       TaskSchedulerlmpl;

           c)SchedulerBackend是一个接口,更加具体的Cluster Manager的不同会有不同的实现,Standalone模式下具体的实现是  SparkDeploySchedulerBackend;

   2、从整个程序运行的角度来讲,SparkContext包含四大核心对象:DAGScheduler、TaskScheduler、SchedulerBackend、MapOutputTrackerMaster。

createTaskScheduler     case SIMR_REGEX(simrUrl) =>        val scheduler = new TaskSchedulerImpl(sc)        val backend = new SimrSchedulerBackend(scheduler, sc, simrUrl)        scheduler.initialize(backend)        (backend, scheduler)

SparkDeploySchedulerBackend有三大核心功能:

   负责与Master链接注册当前程序;

   接收集群中为当前应用程序而分配计算资源Executor的注册并管理Executor

   负责发送Task到具体的Executor执行;

补充说明的是:SparkDeploySchedulerBackend是被TaskSchedulerImpl来管理的。
val command = Command("org.apache.spark.executor.CoarseGrainedExecutorBackend",      args, sc.executorEnvs, classPathEntries ++ testingClassPath, libraryPathEntries, javaOpts)

当通过SparkDeploySchedulerBackend注册程序给Master的时候会把上述command提交给Master,Master发指令给Worker去启动Executor所在的进程的时候加载main方法的 在的入口类就是command中的CoarseGrainedExecutorBackend,当然你可以实现自己的ExecutorBackend,在CoarseBrainedExecutorBackend中启动Executor(Executor先注册)

val executorConf = new SparkConf      val port = executorConf.getInt("spark.executor.port", 0)      val fetcher = RpcEnv.create(        "driverPropsFetcher",        hostname,        port,        executorConf,        new SecurityManager(executorConf),        clientMode = true)      val driver = fetcher.setupEndpointRefByURI(driverUrl)      val props = driver.askWithRetry[Seq[(String, String)]](RetrieveSparkProps) ++        Seq[(String, String)](("spark.app.id", appId))      fetcher.shutdown()
private def registerWithMaster(nthRetry: Int) {      registerMasterFutures.set(tryRegisterAllMasters())      registrationRetryTimer.set(registrationRetryThread.scheduleAtFixedRate(new Runnable {        override def run(): Unit = {          Utils.tryOrExit {            if (registered.get) {              registerMasterFutures.get.foreach(_.cancel(true))              registerMasterThreadPool.shutdownNow()            } else if (nthRetry >= REGISTRATION_RETRIES) {              markDead("All masters are unresponsive! Giving up.")            } else {              registerMasterFutures.get.foreach(_.cancel(true))              registerWithMaster(nthRetry + 1)            }          }        }      }, REGISTRATION_TIMEOUT_SECONDS, REGISTRATION_TIMEOUT_SECONDS, TimeUnit.SECONDS))    }


王家林老师是大数据技术集大成者,中国Spark第一人:

DT大数据梦工厂

新浪微博:www.weibo.com/ilovepains/

微信公众号:DT_Spark

博客:http://.blog.sina.com.cn/ilovepains

TEL:18610086859

Email:18610086859@vip.126.com






















2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在淘宝上交话费交错了怎么办 演出队在小区旁边扰民怎么办 雷雨天加了油怎么办 戴ok镜眼睛重影怎么办 乌龟背上长白色的花纹怎么办? 全自动洗衣机里面掉个硬币怎么办 跆拳道课上孩子乱动说话怎么办? 孩子不愿意上跆拳道课了怎么办 车座位里面倒了汤怎么办 腿被棍子打肿了怎么办 刚买的手机碎屏怎么办 被木棍么么打到头项怎么办 大王卡用到40g怎么办 王卡40g用完了怎么办 父亲把母亲打成重伤怎么办 狗狗脖子摔歪了怎么办 吃鸡游戏中重伤怎么办 吃鸡游戏摔伤了怎么办 现在没能力偿还网贷怎么办 上海找夜场工作被骗了怎么办? 买了烂尾的楼盘怎么办 孕七个月蛀牙疼怎么办 宝宝只吃一边奶怎么办 实房付了定金后悔了怎么办 开车时遇到意外事故时怎么办 没干过影楼门市怎么办 uplay下载游戏速度0k怎么办 缓刑期间被别人打成轻伤怎么办 缓刑期间被别人打了怎么办 有缓刑被别人打怎么办 检察院不予立案怎么办公安局取保 监外执行过了又犯罪怎么办 监视居住期间再次犯罪怎么办 前妻有贷款跑了怎么办 未成年犯有缓刑罪继续犯罪怎么办 英朗出现检修esc怎么办 照相时奖状拿反了怎么办 wps文档加密后忘记密码怎么办 wps表格文件密码忘记了怎么办 wps表格密码忘记了怎么办 发布的文案缩成一行怎么办