无法在纱线模式下启动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>
HDFS-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
并且不确定我是否需要设置此项,或者上述问题是否与此相关?
不确定为什么我无法在纱线模式下生成火花壳以及修复需要什么?任何想法?
答案 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