关于spark作业提交流程的问题

查看数: 8866 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-4-15 18:59

正文摘要:

北京:假设有一个hadoop集群 一个master 若干个slave 本地客户端使用yarn cluster模式和远端集群进行通信 图片如下,针对各个过程问题如下 第0步:dirve jar是指打的jar包吗 第3步:appmaster启动在哪个节点上呢 ...

回复

zcfightings 发表于 2016-4-18 13:34:23
xuanxufeng 发表于 2016-4-15 20:44
第0步:dirve jar是指打的jar包吗
是指你提交的jar
第3步:appmaster启动在哪个节点上呢?有什么决定的 ...

灰常感谢版主的热心详细的回复  同时向大神致敬!



xuanxufeng 发表于 2016-4-15 20:44:57
第0步:dirve jar是指打的jar包吗
是指你提交的jar
第3步:appmaster启动在哪个节点上呢?有什么决定的?(启动到集群的master上还是slave上,如果是slave,那是哪个slave?随机选一个?)
首先我们需要知道进程和主机的概念,比如master上一般有resourcemanager,namenode,slave是nodemanager,datanode等,那么我们如何resourcemanager,namenode,nodemanager,datanode都单独一个机器是否,答案是可以。哪个进程,在那个节点上,这个不是不重要的。至于是哪一个,是根据集群当前的情况来选择



第6步:分配的container直接分配给node 节点了 还要通知appmaster吗?(图中没有标注,但应该给通知了吧 否则appmaster怎么知道哪些节点分配了container 可以当worker用了呢)

这个还真没有告诉它,楼主,看下面5,6步骤
1. 由client向ResourceManager提交请求,并上传jar到HDFS上
这期间包括四个步骤:
a). 连接到RM
b). 从RM ASM(ApplicationsManager )中获得metric、queue和resource等信息。
c). upload app jar and spark-assembly jar
d). 设置运行环境和container上下文(launch-container.sh等脚本)

2. ResouceManager向NodeManager申请资源,创建Spark ApplicationMaster(每个SparkContext都有一个ApplicationMaster)
3. NodeManager启动Spark App Master,并向ResourceManager AsM注册
4. Spark ApplicationMaster从HDFS中找到jar文件,启动DAGscheduler和YARN Cluster Scheduler
5. ResourceManager向ResourceManager AsM注册申请container资源(INFO YarnClientImpl: Submitted application)
6. ResourceManager通知NodeManager分配Container,这时可以收到来自ASM关于container的报告。(每个container的对应一个executor)

7. Spark ApplicationMaster直接和container(executor)进行交互,完成这个分布式任务。

来自Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html


第8步:如果appmaster分配到一个非master的node上(图上展示运行appmaster的确实是),它给其他节点分配工作 但slave之前并不能无密码登录,那它怎么和其他node进行通信?

楼主怎么知道的没有配置ssh


推荐另外一篇文章,里面介绍了两个过程,可对比分析下
Spark on YARN两种模式作业运行全过程分析
http://www.aboutyun.com/forum.php?mod=viewthread&tid=18060




关闭

推荐上一条 /2 下一条