Apache spark 为什么两次在纱线上执行火花壳导致第二次挂起?
我正在为测试目的设置Hadoop集群,并将所有内容放入3个Docker容器中 我在master上的spark-defaults.conf是: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
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