关于Spark On Yarn模式启动历史服务(HistoryServer进程)失败

一,检查Hadoop集群是否成功开启

        Spark本身并无资源调度模式,所以Spark on Yarn 模式是利用Yarn来对Spark的资源进行调度的。

        因此需要检查hadoop集群是否正常开启:

第一台的进程NodeManager,DataNode,NameNode
第二台的进程ResourceManager,DataNode,NodeManager
第三台的进程       NodeManager,SecondaryNameNode

        若缺少节点进程,请检查Hadoop集群配置


二,检查Spark集群模式是否成功开启

       正确开启Spark节点:

第一台的进程Master,Worker
第二台的进程Worker
第三台的进程Worker

若不能正常开启,则需要检查spark集群的配置文件


三,检查Spark的配置文件

       spark的配置文件在$Spark_Home/conf中,检查其中部分代码,下文会说明具体代码

        (注意:不是所有人的代码都一样,要根据自己的配置进行改动!!!)

1,检查spark-env.sh:

export export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
export JAVA_HOME=$JAVA_HOME
export HADOOP_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
YARN_CONF_DIR=$HADOOP_HOME/ect/hadoop
SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077
export SPARK_HISTORY_OPTS="
-Dspark.history.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory
-Dspark.history.retainedApplication=30"

2,检查spark-defaults.conf:

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://hadoop102:8020/directory
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080

 spark.eventLog.enabled        开启spark历史日志

spark.eventLog.dir        规定历史日志存放位置(要与spark-env.sh中的SPARK_HISTORY_OPTS的Dspark.history.fs.logDirectory一致)

spark.yarn.historyServer.address        规定历史日志的访问地址

spark.history.ui.port        规定历史日志的访问端口

(注意:spark.eventLog.dir与Dspark.history.fs.logDirectory的NameNode地址要与$HADOOP_HOME/etc/hadoop下的core-site中的namenode地址相同)


四,在hdfs的相应目录上创建文件夹

根据spark-env.sh和spark-defaults.conf中所配置的Dspark.history.fs.logDirectory和spark.eventLog.dir的地址,在hdfs的相应位置创建同名文件夹


以上便是对spark history server的所有准备工作了。

接下来就可以正常开启history-server进程了,也可以通过浏览器输入ip地址和端口号进入webUI页面。


版权声明:本文为qq_52780611原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。