Spark 配置历史服务
本文章的前提是
Spark 3.5.0 独立部署(Standalone)模式
or
Spark Yarn模式
1.在Hadoop上创建用于存放Spark日志的存储路径
hadoop fs -mkdir /spark_logs
2.tmp目录创建存放事件日志的目录
mkdir /tmp/spark-events
3.修改Spark的配置文件
cd /usr/spark/spark-3.5.0-bin-hadoop3/conf
mv spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://192.168.58.130:8020/spark_logs
如果运行在yarn模式下,还需要添加yarn相关的配置
spark.yarn.historyServer.address=192.168.58.130:18080
spark.history.ui.port=18080
spark.history.fs.logDirectory=hdfs://192.168.58.130:8020/spark_logs
4.修改 spark-env.sh 文件, 添加日志配置
在配置文件中配置了历史服务器的参数,在此处可以不配置
# spark.history.ui.port: WEB UI 访问的端口号为 18080
# spark.history.fs.logDirectory: 指定历史服务器日志存储路径
# spark.history.retainedApplications: 指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序
# 信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://192.168.58.130:8020/spark_logs
-Dspark.history.retainedApplications=30"
5.重新启动集群并启动历史服务
../sbin/start-all.sh
../sbin/start-history-server.sh
6.执行一个测试任务
cd ..
bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://192.168.58.130:7077 ./examples/jars/spark-examples_2.12-3.5.0.jar 10
如果运行在yarn模式下,执行下面的命令
cd ..
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client ./examples/jars/spark-examples_2.12-3.5.0.jar 10