1、独立集群
Spark自己搭建一个资源管理框架,不依赖yarn
1、上传解压配置环境变量
# 家业安装包 tar -xvf spark-3.1.3-bin-hadoop3.2.tgz # 重命名解压目录 mv spark-3.1.3-bin-hadoop3.2/ spark-3.1.3 # 配置环境变量 vim /etc/profile export SPARK_HOME=/usr/local/soft/spark-3.1.3 export PATH=$PATH:$SPARK_HOME/bin source /etc/profile
2、修改配置文件
# 1、修改spark-env.sh mv spark-env.sh.template spark-env.sh # 增加配置 export HADOOP_CONF_DIR=/usr/local/soft/hadoop-3.1.1/etc/hadoop export SPARK_MASTER_HOST=master export SPARK_MASTER_PORT=7077 export SPARK_WORKER_CORES=2 export SPARK_WORKER_MEMORY=4G export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 # 2、修改workers mv workers.template workers # 增加配置 node1 node2 # 3、同步到所有节点 scp -r spark-3.1.3/ node1:`pwd` scp -r spark-3.1.3/ node2:`pwd`
3、启动集群
# 启动集群 cd /usr/local/soft/spark-3.1.3/sbin ./start-all.sh # spark webUI http://master:8080
4、提交任务
# 进入样例代码所在的目录 /usr/local/soft/spark-3.1.3/examples/jars # 提交任务 spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi spark-examples_2.12-3.1.3.jar 100 # 代码提交到集群运行方式 #1、注释local #2、修改数据路径,改成HDFS的路径,输入输出目录都需要修改i #3、将代码打包上传到服务器运行 # 提交任务 spark-submit --master spark://master:7077 --class com.shujia.core.Demo15Submit spark-1.0-SNAPSHOT.jar
2、Spark on Yarn
yarn是一个分布式资源管理管家,负责管理集群的CPU和内存
1、关闭独立集群
# 进入spark脚本目录 cd /usr/local/soft/spark-3.1.3/sbin ./stop-all.sh
2、启动hadoop
start-all.sh
3、提交任务
# --num-executors 2: 指定Executor的数量 # --executor-cores 1 : 指定executor的核数 # --executor-memory 2G :指定executoe的内存 # yarn client模式 # 1、会在本地打印详细的执行日志,可以看到全部执行错误日志 # 2、一般用于测试使用,如果大量的任务都使用client模式去提交,会导致本地节点压力大 # 3、client模式Driver、在本地启动,所以再本地可以看详细日志 spark-submit --master yarn --deploy-mode client --num-executors 2 --executor-cores 1 --executor-memory 2G --class com.shujia.core.Demo15Submit spark-1.0-SNAPSHOT.jar # yarn cluster模式 # 1、在本地不打印详细的执行日志,只能看到部分错误日志 # 2、任务执行报错会重试一次 # 3、一般用于上线使用,Driver是随机节点,不会导致某一个系欸但压力大 # 4、Driver不在本地启动,所在再本地看不到详细日志 spark-submit --master yarn --deploy-mode cluster --num-executors 2 --executor-cores 1 --executor-memory 2G --class com.shujia.core.Demo15Submit spark-1.0-SNAPSHOT.jar # 获取yarn任务的详细日志 yarn logs -applicationId [appid] spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi spark-examples_2.12-3.1.3.jar 100