https://blog.csdn.net/m0_67991849/article/details/125158592
Local模式
Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。
tar -zxvf spark-3.1.3-bin-hadoop3.2.tgz -C /opt/module/
mv spark-3.1.3-bin-hadoop3.2 spark-local
cd /opt/module/spark-local
bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ./examples/jars/spark-examples_2.12-3.0.0.jar 10
local[K]:指定使用K个Core来运行计算,比如local[2]就是运行2个Core来执行
local[*]:默认模式。自动帮你按照CPU最多核来设置线程数。比如CPU有8核,Spark帮你自动设置8个线程计算。
官方WordCount案例
cd /opt/module/spark-local
mkdir input
在input下创建2个文件1.txt和2.txt,并输入以下内容。
hello chenyunde
hello spark
hdfs dfs -put 1.txt hdfs://hadoop2:8020/user/smai/input
hdfs dfs -put 2.txt hdfs://hadoop2:8020/user/smai/input
启动spark-shell
bin/spark-shell
scala> sc.textFile("input/1.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
Standalone模式
tar -zxvf spark-3.1.3-bin-hadoop3.2.tgz -C /opt/module/
mv spark-3.1.3-bin-hadoop3.2 spark-standalone
cd /opt/module/spark-standalone/conf
# 进入解压缩后路径的conf目录,修改slaves.template文件名为slaves
mv slaves.template slaves
# 修改slaves文件,添加worker节点(各主机名),删除localhost后添加
hadoop101
hadoop102
hadoop103
# 修改spark-env.sh.template文件名为spark-env.sh
mv spark-env.sh.template spark-env.sh
# 修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点
export JAVA_HOME=/opt/module/jdk1.8.0_144
SPARK_MASTER_HOST=hadoop101
SPARK_MASTER_PORT=7077
# 注意:7077端口,相当于hadoop3内部通信的8020端口,此处的端口需要确认自己的Hadoop配置
bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop2:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10
配置历史服务器记录任务运行情况
mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop2:8020/spark-standalone-log
注意:HDFS上的目录需要提前存在。
hadoop fs -mkdir /spark-standalone-log
3)修改spark-env.sh文件,添加如下配置:
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop2:8020/spark-standalone-log
-Dspark.history.retainedApplications=30"
# 参数1含义:WEBUI访问的端口号为18080
# 参数2含义:指定历史服务器日志存储路径(读)
# 参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
启动历史服务
sudo vi /etc/profile.d/my_env.sh
修改spark环境变量
# SPARK_HOME
export SPARK_HOME=/opt/module/spark-standalone
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile.d/my_env.sh
[chenyunde@hadoop2 spark-standalone]$ sbin/start-history-server.sh
执行:
bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop2:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10
页面打开 http://hadoop2:18080,即可看到历史日志