使用Yarn集群管理器启动Spark报错(WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Attempted to request executor)

前言

博主想要使用 Yarn 作为集群管理器启动 pyspark,但是一直没有启动成功。
捣鼓了两天,通过无数次百度终于解决了问题。

1. 报错

Spark版本:2.2.0
Hadoop版本:2.7.3

19/03/12 21:37:59 WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Attempted to request executors before the AM has registered!
19/03/12 21:37:59 WARN MetricsSystem: Stopping a MetricsSystem that is not running
。。。。。。

2. 解决办法

  1. 确保在 HDFS 上有spark的jars文件目录
    上传 jars 至 HDFS:
hdfs dfs -mkdir /spark_jars
hdfs dfs -put spark-2.0.2/jars/*  /spark_jars
  1. 设置 spark-defaults.sh
    文件末尾添加如下内容:
spark.yarn.jars=hdfs://master:9000/spark_jars/*
  1. 设置 yarn-site.xml
    文件末尾添加如下:

    yarn.nodemanager.pmem-check-enabled
    false



    yarn.nodemanager.vmem-check-enabled
    false

将该文件复制到各个子节点(没有尝试过只修改master节点是否有效)。

  1. 设置HADOOP_CONF_DIR (所有节点执行
    修改 ~/.bashrc 文件,末尾添加(路径根据自己机器修改):
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

source ~/.bashrc

  1. 重新启动所有的服务:
start-all.sh
spark-2.0.2/sbin/start-all.sh
  1. 使用 yarn 为集群管理器登录:
    使用Yarn集群管理器启动Spark报错(WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Attempted to request executor)_第1张图片

完!

你可能感兴趣的:(Spark,Spark学习)