美文网首页
spark基础入门-集群模式

spark基础入门-集群模式

作者: 一个喜欢烧砖的人 | 来源:发表于2018-08-01 18:48 被阅读9次

    看了忘,忘了有看,然而又忘了,很烦......

    什么 app master 、resourceManage、nodeManage、yarn-cluster、yarn-client...(通通全是名字,真的很烦......)

    稳住,直接干......

    Spark on yarn有分为两种模式

    • yarn-cluster
    • yarn-client
    基本概念
    • resourceManage:
      首先是yarn的概念,负责yarn上的资源管理(和spark无关,只要有yarn就会有)
    • nodeManage:
      和resourceManage是对应的,也是yarn的概念,负责yarn上具体干活的(也和spark无关)
    • application Master:
      在集群上每个application(应用程序)运行都会首先启动一个进程(application master),它是以后用程序的启动的第一个容器,负责和resourceManage打交道,应请求资源,获取资源后告诉nodeManage开始工作;
    • client:
      程序开始执行的地方
    从广义上讲

    yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。

    从深层次的含义讲

    此行只是为了对应上面的从广义上讲(别生气,看下面.....)

    一、yarn-cluster模式

    盗个图先:


    image.png

    详细步骤:
    1、spark 提交application 到yarn上(判断参数是否争取,设置名字,读取配置,设置环境变量等);
    2、yarn 为程序在任意一台nodeManage上启动applicationMaster(nodeManage选取是任意的,实现不知道)
    3、程序初始化sparkContext,由此nodeManage便作为此程序的driver端;
    4、application master 向resourceManage申请资源、地址等;
    5、application master 向申请到的nodeManage启动executor运行task;
    6、初始化之后的sparkcontext和nodeManage进行消息通讯(心跳机制)

    备注:

    • nodeManage上的executor 和 application master 进程是可以共存的,互不影响;
    • client提交程序到yarn上之后 是可以直接关闭client的,因为程序已经在跑了;
    二、yarn-client模式

    再次盗个图先


    原谅我,向画图的人致敬

    过程略:
    yarn-client的不同于是driver端的运行地方不一样;

    小结:

    • yarn-cluster模式适合运行自生产环境中,yarn-client模式适合调试模式(他不是集群,它只是把程序提交到集群上运行)
    • yarn-client模式的driver和client在一起(client关了,driver也就不存在了)
    • yarn-client模式的applicationmaster和yarn-clustor的application Master 一样是在yarn的nodemanage上任意选择的;
    • yarn-client模式的程序监控是靠client来完成的,yarn-cluster模式的程序是靠application master几点的driver监控的(所以运行结果的打印yarn-client模式在client下,yarn-cluster模式在applicationmaster 所在的节点上)

    注意:spark-shell 和 spark-sql 不能运行在yarn-cluster 模式,只能运行在local和yarn-client 模式上

    相关文章

      网友评论

          本文标题:spark基础入门-集群模式

          本文链接:https://www.haomeiwen.com/subject/eumlvftx.html