无法在纱线模式下启动Spark Shell

时间:2018-03-14 20:29:07

标签: hadoop apache-spark

无法在纱线模式下启动Spark Shell。当我运行这个./spark-shell --master yarn --deploy-mode client它会永远被卡在这里打印相同的消息。

18/03/14 20:11:38 INFO Client: 
     client token: N/A
     diagnostics: N/A
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1521058297214
     final status: UNDEFINED
     tracking URL: http://ip-172-31-0-54:8088/proxy/application_1521058273627_0001/
     user: centos
18/03/14 20:11:39 INFO Client: Application report for application_1521058273627_0001 (state: ACCEPTED)
18/03/14 20:11:40 INFO Client: Application report for application_1521058273627_0001 (state: ACCEPTED)
18/03/14 20:11:41 INFO Client: Application report for application_1521058273627_0001 (state: ACCEPTED)

资源管理器UI显示ACCEPTED: waiting for AM container to be allocated, launched and register with RM并且永远不会从此状态移动。

以下是我的配置文件

芯-site.xml中

<?xml version="1.0"?>
<!-- core-site.xml -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://NameNode:8020/</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

HD​​FS-site.xml中

<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_work/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_work/hdfs/datanode</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:/usr/local/hadoop_work/hdfs/namesecondary</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
</configuration>

纱-site.xml中

<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>NameNode</value>
</property>
<property>
<name>yarn.resourcemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.nodemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>file:/usr/local/hadoop_work/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>file:/usr/local/hadoop_work/yarn/log</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>hdfs://NameNode:8020/var/log/hadoop-yarn/apps</value>
</property>
</configuration>

mapred-site.xml 为空,因为我使用Spark但不使用map reduce

版本:Spark 2.3和Hadoop 2.7.3

未知

经过一些谷歌搜索后,我看到SPARK_DIST_CLASSPATH但它没有在spark-env.sh中列出但是有SPARK_CLASSPATH并且不确定我是否需要设置此项,或者上述问题是否与此相关?

不确定为什么我无法在纱线模式下生成火花壳以及修复需要什么?任何想法?

1 个答案:

答案 0 :(得分:0)

你应该看看Yarn UI,看看你的火花作业是否要求更多的内存或核心,而不是Yarn必须提供的。

您可能要求为Spark执行程序提供比Yarn更多的内存或内核。在这种情况下,您应该将spark执行器大小设置为适合的大小。为此,您需要在 $ SPARK_HOME / conf / spark-defaults.conf 文件中设置这些设置

spark.driver.memory spark.executor.memory spark.executor.cores

此外,当您使用spark-submit提交作业时,您可以使用标记 - num-executors 来指定所需的执行程序数。

这篇文章描述了双方的内存设置: Spark Yarn Memory configuration

此外,yarn-site.xml中有类似的设置,用于控制总容量和每个容器可以使用的核心数:

yarn.nodemanager.resource.cpu-vcores
yarn.scheduler.minimum-allocation-vcores
yarn.scheduler.maximum-allocation-vcores