Apache spark 为什么两次在纱线上执行火花壳导致第二次挂起?

Apache spark 为什么两次在纱线上执行火花壳导致第二次挂起?,apache-spark,hadoop,yarn,hadoop2,Apache Spark,Hadoop,Yarn,Hadoop2,我正在为测试目的设置Hadoop集群,并将所有内容放入3个Docker容器中 我在master上的spark-defaults.conf是: spark.master yarn spark.eventLog.enabled true spark.eventLog.dir hdfs://spark-master:9000/spark/logs spark.serializer org.a

我正在为测试目的设置Hadoop集群,并将所有内容放入3个Docker容器中

我在master上的spark-defaults.conf是:

spark.master                     yarn
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://spark-master:9000/spark/logs
spark.serializer             org.apache.spark.serializer.KryoSerializer
spark.history.provider          org.apache.spark.deploy.history.FsHistoryProvider
spark.history.fs.logDirectory    hdfs://spark-master:9000/spark-logs
spark.history.fs.update.interval 10s
spark.history.ui.port            18080
spark.driver.memory              512m
spark.executor.memory            512m
spark.yarn.am.memory             512m
spark.yarn.historyServer.address spark-master:18080
spark.executor.instances         1
core-site.xml

[root@spark-master hadoop]# cat core-site.xml 
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://spark-master:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/tmp/hadoop</value>
    </property>
</configuration>
主人

[root@spark-master /]# jps
1952 SparkSubmit
597 NameNode
458 ResourceManager
1066 SecondaryNameNode
2906 Jps
75 ZeppelinServer
1292 HistoryServer
2702 SparkSubmit
节点1

[root@cassandra-node-1 /]# jps
96 NodeManager
1606 CoarseGrainedExecutorBackend
3094 Jps
231 DataNode
节点2

[root@cassandra-node-2 /]# jps
229 DataNode
3110 Jps
1565 ExecutorLauncher
94 NodeManager
这里似乎一切都很好。我看到一个容器中有应用程序管理器,另一个容器中有spark shell executor

现在问题相当简单。我想做的就是执行两次spark shell-我想做的 “一个spark shell和一个Zeppelin解释器在纱线上”场景,但是Zeppelin解释器没有工作,因为它被无限期地挂起,所以为了简单起见,我只想运行两个spark shell

但是当我要执行第二个shell时,它被卡住了,但是这里有足够的资源可以使用,对吗?有3.13 GB的可用内存,8个vcore中只使用了1个vcore(7个vcore空闲),所有这些看起来都是非常空闲的,那么为什么另一个spark shell没有启动,它处于挂起状态

对于挂起的应用程序尝试,它报告:

Total Outstanding Resource Requests: <memory:896, vCores:1>
2) 纱线节点-列表-启动第一个spark shell后-我到达spark shell控制台


Total Nodes:2
         Node-Id         Node-State Node-Http-Address   Number-of-Running-Containers
cassandra-node-2:43961 RUNNING  cassandra-node-2:8042 2
cassandra-node-1:36905 RUNNING  cassandra-node-1:8042 0
3) 启动第二个spark shell后,输出与2)中的相同,第二个shell给出:

[root@spark-master /]# spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2018-09-04 10:56:14 WARN  Utils:66 - Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
并且没有额外的输出,因为它被卡住了

hadoop后端中第二个spark shell的应用程序尝试显示:

Total Outstanding Resource Requests: memory:896, vCores:1

您可以为3个场景添加
纱线节点-列表的输出吗。a) 在运行任何spark应用程序之前。b) 在开始1次spark提交之后但在开始第2次spark提交之前。c) 当第一个spark submit正在运行而第二个spark submit被卡住时。@prakharjain添加了您想要的内容,这是关于spark shell的,而不是spark submit。
Total Nodes:2
         Node-Id         Node-State Node-Http-Address   Number-of-Running-Containers
cassandra-node-2:43961 RUNNING  cassandra-node-2:8042 0
cassandra-node-1:36905 RUNNING  cassandra-node-1:8042 0

Total Nodes:2
         Node-Id         Node-State Node-Http-Address   Number-of-Running-Containers
cassandra-node-2:43961 RUNNING  cassandra-node-2:8042 2
cassandra-node-1:36905 RUNNING  cassandra-node-1:8042 0
[root@spark-master /]# spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2018-09-04 10:56:14 WARN  Utils:66 - Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Total Outstanding Resource Requests: memory:896, vCores:1