需要提前部署 hadoop 并启动
1、解压软件包
cd /opt/software
tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz
mv spark-3.1.1-bin-hadoop3.2 /opt/module/spark-3.1.1
2、profile 配置
vim /etc/profile
#SPARK
export SPARK_HOME=/opt/module/spark-3.1.1
export PATH=$PATH:$SPARK_HOME/bin
# 分发
scp -r /etc/profile slave1:/etc/
scp -r /etc/profile slave2:/etc/
source /etc/profile
3、yarn-site配置
vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认
是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认
是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
4、spark env配置
cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh
vim $SPARK_HOME/conf/spark-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_212
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
# 添加日志配置
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://master:8020/directory
-Dspark.history.retainedApplications=30"
5、配置历史服务器
# 添加历史服务器配置
cp $SPARK_HOME/conf/spark-defaults.conf.template $SPARK_HOME/conf/spark-defaults.conf
vim $SPARK_HOME/conf/spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:8020/directory
spark.yarn.historyServer.address=master:18080
spark.history.ui.port=18080
6、HDFS创建路径
# 在HDFS创建一个历史服务器路径
hadoop fs -mkdir /directory
6、提交应用测试
集群模式
$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar \
10
客户端模式
$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar \
10
7、启动
yarn
# 查看任务
http://slave1:8088/
spark
# 启动
$SPARK_HOME/sbin/start-all.sh
# 关闭
$SPARK_HOME/sbin/stop-all.sh
# 访问地址
http://master:8081/
历史服务器
# 启动
$SPARK_HOME/sbin/start-history-server.sh
# 关闭
$SPARK_HOME/sbin/stop-history-server.sh
# 访问地址
http://master:18080/