Spark Shell
Spark Shell是一个交互式的命令行,里面可以写spark程序,方便学习和测试,他也是一个客户端,用于提交spark应用程序。他有两种运行机制,本地运行和集群运行。
本地运行
[root@hadoop1 spark-2.1.1-bin-hadoop2.7]#bin/spark-shell
注:没有指明master的地址,所以是spark的local模式运行的,模拟的spark集群运行的过程,在监控页面中不会用记录。
集群运行
[root@hadoop1 spark-2.1.1-bin-hadoop2.7]#bin/spark-shell --master spark://node-4:7077,node-5:7077
注:指定了master的地址,"node-4:7077,node-5:7077"表示是spark集群的主节点(Master,有几个主节点,就写几个),那么就会将任务提交到集群,开始时sparksubmit(客户端)要连接Master,并申请计算资源(内存和核数),Master进行资源调度(就是让那些Worker启动Executor),在准备工作时,这些进程都已经创建好了。
Master
Master节点是spark集群的老大,他负责管理worker子节点、资源调度、接收任务请求等。
Worker
Worker节点是spark的工作节点,当spark集群运行任务时,Worker节点负责管理CoarseGrainedExecutorBackend的进程
SparkSubmit
SparkSubmit节点是spark集群的任务提交节点(类似于Driver),在spark集群中,任务提交在哪一个机器中,SparkSubmit节点就在那一台机器上生成,他会将Task提交到CoarseGrainedExecutorBackend节点上去计算。
CoarseGrainedExecutorBackend
CoarseGrainedExecutorBackend节点简称为Executor节点,提示执行具体计算的节点,由worker节点所在机器生成,他有Worker节点进行管理,并且SparkSubmit节点会将任务Task提交给他(Task任务可以有多个)。