一,检查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页面。