目录
1.准备工作
2.下载spark-3.1.1-bin-hadoop2.7和scala-2.12.13并解压
3.配置环境变量
4.配置文件$SPARK_HOME/conf/spark-env.sh
6.配置spark的历史服务 ($SPARK_HOME/conf/)
7.配置文件$SPARK_HOME/conf/workers
8.配置文件拷贝
9.集群的启动和停止
10.错误排查方法
下载路径:Downloads | Apache Spark
tar -zxvf 压缩包路径
Spark目录介绍
#scala
export SCALA_HOME=/home/Group10/scala-2.12.10
export PATH=${SCALA_HOME}/bin:$PATH
#spark
export SPARK_HOME=/home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH
使环境生效:
source .bashrc
export JAVA_HOME=/home/Group10/jdk1.8.0_271
export SCALA_HOME=/home/Group10/scala-2.12.13
export SPARK_WORKER_MEMORY=5G
export SPARK_WORKER_CORES=3
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_IP=10.103.105.94
export SPARK_DIST_CLASSPATH=$(/home/Group10/hadoop/hadoop-2.7.6/bin/hadoop classpath)
export HADOOP_CONF_DIR=/home/Group10/hadoop/hadoop-2.7.6/etc/hadoop/
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=50 -Dspark.history.fs.logDirectory=hdfs://10.103.105.94:8020/data/spark/sparklog"
由于spark-shell停止掉后,hadoop页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。
(1)复制一份spark-default.conf.template文件并改名为spark-default.conf
cp spark-defaults.conf.template spark-defaults.conf
(2)配置日志存储路径
vim spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://10.103.105.94:8020/data/spark/sparklog
spark.eventLog.compress true
#spark.yarn.historyServer.address=10.103.105.98:18080
#spark.history.ui.port=18080
spark.history.fs.logDirectory hdfs://10.103.105.94:8020/data/spark/sparklog
(3)在配置文件spark-env.sh中添加入下内容(上一步配置已经添加过)
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://10.103.105.94:8020/data/spark/sparklog
-Dspark.history.retainedApplications=50"
westgisB095
westgisB096
westgisB097
westgisB098
scp -r /home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/spark-env.sh [email protected]:/home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/
scp -r /home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/spark-defaults.conf [email protected]:/home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/
scp -r /home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/workers [email protected]:/home/Group10/spark-3.1.1/spark-3.1.1-bin-hadoop2.7/conf/
其他从节点同样的拷贝方法
(1)先启动HDFS集群
$HADOOP_HOME/sbin/start-dfs.sh
(2)启动spark集群
在主节点执行以下两个脚本:
$SPARK_HOME/sbin/start-master.sh
$SPARK_HOME/sbin/start-workers.sh
(3)查看监控界面
在浏览器输入:
http://10.103.104.94:8080
(4)查看节点进程
在主节点和从节点上使用jps命令查看节点进程,或使用ps aux|grep java 命令查看节点进程。
如果是主节点,应该出现Master、NameNode、SecondaryNameNode等三个守护进程;如果是从节点,应该出现Worker和DataNode两个守护进程。
如果发现进程缺失,查看对应的日志文件寻找错误原因。
(5)启动spark-shell交互式工具
spark-shell
启动命令:
./sbin/start-history-server.sh
http://10.103.105.94:18080/
(7)停止Spark集群
在主节点执行以下两个脚本:
$SPARK_HOME/sbin/stop-workers.sh
$SPARK_HOME/sbin/stop-master.sh
(8)关闭HDFS集群
$HADOOP_HOME/sbin/stop-dfs.sh
(1)查看端口是否开启
运行命令 netstat–tunlp|grep 8080
查看8080端口是否开启。
(2)查看占用端口的进程
运行命令lsof–i:8080
查看8080端口被那个进程占用。
(3)查看运行日志
Spark主节点日志文件路径:
$SPARK_HOME/logs/*-Master-.log
$SPARK_HOME/logs/*-Master-.out
Spark从节点日志文件路径:
$SPARK_HOME/logs/*-Worker-.log
$SPARK_HOME/logs/*-Worker-.out