分享

探索Spark源码---Driver程序如何与Spark集群建立联系?

regan 发表于 2015-12-16 17:41:45 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 3 7754
本帖最后由 regan 于 2015-12-17 12:47 编辑

     在上一节中我们讲到了通过./spark-submit脚本运行Driver程序。./spark-submit脚本会调用SparkSubmit对象,在SparkSubmit中将会判断调度模式,如果是standalone的调度模式,将会启动org.apache.spark.deploy.Client,在Client对象中,会构建一个ClientActor,这个Actor将会向Master注册Driver,注册后将会调用schedule()方法执行调度,如果有worker满足Driver运行条件,Driver将会被发送到满足条件的Worker节点上,并在一个线程中启动Driver程序(调用Driver程序中的Main方法),那问题来了,Driver程序如何与Spark集群建立联系?

    答案是:SparkContext(SparkStreaming中是StreamingContext),SparkContext是Spark提供给用户的编程接口,在实例化SparkContext的时候,我们将会和集群建立联系,即Driver连接上了Spark集群。
    然后通过SparkContext提供的transaction和Action操作,用户可以构架RDD,由Transaction操作,连接成有前后依赖关系的图-----DAG图,DAG所有的Transaction操作都是懒操作,直到action触发job的提交.
    下面是结构图:

Driver1.png

已有(3)人评论

跳转到指定楼层
regan 发表于 2015-12-18 17:18:25
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条