一、spark-env.sh
文件配置(操作路径:$SPARK_HOME/conf/spark-env.sh
)
如果还没创建:
cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh
然后编辑(比如用 vim):
vim $SPARK_HOME/conf/spark-env.sh
修改内容如下:
# Java 环境
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
# Hadoop 配置目录(用于对接 HDFS)
export HADOOP_CONF_DIR=/usr/local/src/hadoop-3.2.2/etc/hadoop
# Spark Master 配置
export SPARK_MASTER_HOST=master01
export SPARK_MASTER_PORT=7077
# Spark Worker 资源限制
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
# History Server 配置(写入 event log)
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://master01:8020/spark-logs -Dspark.history.fs.cleaner.enabled=true -Dspark.history.fs.cleaner.maxAge=7d"
二、workers
文件配置(操作路径:$SPARK_HOME/conf/workers
)
如果还没创建:
cp $SPARK_HOME/conf/workers.template $SPARK_HOME/conf/workers
编辑文件:
vim $SPARK_HOME/conf/workers
写入每台 Worker 的 hostname(或 IP):
node01
node02
可选写法(如果 DNS 不通):
192.168.1.102
192.168.1.103
三、spark-defaults.conf
文件配置(操作路径:$SPARK_HOME/conf/spark-defaults.conf
)
如果还没创建:
cp $SPARK_HOME/conf/spark-defaults.conf.template $SPARK_HOME/conf/spark-defaults.conf
编辑文件:
vim $SPARK_HOME/conf/spark-defaults.conf
推荐配置内容如下:
# 集群主节点
spark.master spark://master01:7077
# 提交模式(client 适合测试,部署集群可用 cluster)
spark.submit.deployMode client
# 启用事件日志
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master01:8020/spark-logs
# 历史服务器读取的日志目录
spark.history.fs.logDirectory hdfs://master01:8020/spark-logs
# 日志自动清理设置
spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.maxAge 7d
# 默认 executor 资源设置
spark.executor.memory 1g
spark.executor.cores 1
# driver 内存设置(本地运行任务时用)
spark.driver.memory 1g
四、HDFS 中创建日志目录
hdfs dfs -mkdir -p /spark-logs
hdfs dfs -chmod -R 755 /spark-logs
如果你用的是非 root 用户运行 Spark,比如 sparkuser
:
hdfs dfs -chown sparkuser:hadoop /spark-logs
五、启动服务推荐顺序
# 启动 Hadoop 集群
start-dfs.sh
# 启动 Spark 集群
start-all.sh
# 启动 Spark 历史服务器
start-history-server.sh
# 查看 UI 页面(History Server 默认 18080)
http://master01:18080