百度网盘下载地址(平台搭建全套安装包):
链接:https://pan.baidu.com/s/11HyrxVKevgvJc-rI6bFLjA
提取码:sybk
Standalone模式
Standalone模式,使用的是Spark自带的资源调动引擎,构建一个由 Master + Slave 构成的Spark集群,Spark运行在集群中。
这个要和Hadoop中的Standalone区别开来。这里的Standalone是指只用Spark来搭建一个集群,不需要借助其他的框架。是相对于Yarn和Mesos来说的。
- 解压一份Spark安装包,并修改解压后的文件夹名称为spark-standalone
[root@bigdata1 software]# tar -zxvf spark-3.0.3-bin-hadoop3.2.tgz -C /opt/module/
[root@bigdata1 module]# mv spark-3.0.3-bin-hadoop3.2/ spark-standalone
- 配置集群节点
[root@bigdata1 conf]# mv slaves.template slaves
[root@bigdata1 conf]# vim slaves
bigdata01
bigdata02
bigdata03
- 修改spark-env.sh文件,添加master节点
[root@bigdata1 conf]# mv spark-env.sh.template spark-env.sh
[root@bigdata1 conf]# vim spark-env.sh
SPARK_MASTER_HOST=bigdata1
SPARK_MASTER_PORT=7077
- 向其他机器分发spark-standalone包
在其他机器创建spark-standalone目录。
[root@bigdata1 spark-standalone]# scp -r /opt/module/spark-standalone/ bigdata2:/opt/module
[root@bigdata1 spark-standalone]# scp -r /opt/module/spark-standalone/ bigdata3:/opt/module
- 启动spark集群 (注意执行路径)
[root@bigdata1 spark-standalone]# sbin/start-all.sh
#jps 检查是否有master(bigdata01)和woker(bigdata01、bigdata02、bigdata03)
spark 默认的 Web UI端口为8080
6.官方求PI案例
[root@bigdata1 spark-standalone]# bin/spark-submit \
> --class org.apache.spark.examples.SparkPi \
> --master spark://bigdata01:7077 \
> ./examples/jars/spark-examples_2.12-3.0.3.jar \
> 10
结果:(值不唯一,有值即可)
Pi is roughly 3.1408591408591406
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://bigdata01:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.12-3.0.3.jar \
10
结果:
Pi is roughly 3.1415351415351416
------------------------------ 命令 ---------------------------------------
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://bigdata01:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.12-3.0.3.jar \
10
Standalone-HA模式
操作详解(基于standalone的spark集群)
1.启动zookeeper
2,修改配置spark-env.sh
vi /opt/module/spark-ha/conf/spark-env.sh
注解
#SPARK_MASTER_HOST=bigdata01
增加
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -
Dspark.deploy.zookeeper.url=bigdata01:2181,bigdata02:2181,bigdata03:2181 -
Dspark.deploy.zookeeper.dir=/spark-ha"
3.分发配置到其他节点
4.启动集群
在bigdata01上启动spark集群执行
在bigdata02上再单独启动一个master
5.查看WebUI
http://bigdata01:8080
6.测试
/opt/module/spark-ha/bin/spark-shell --master spark://bigdata01:7077,bigdata02:7077
Spark-On-Yarn模式(推荐使用)
SparkOnYarn的本质是把Spark任务的class字节码文件打成jar包,上传到Yarn集群的JVM中去运行
SparkOnYarn根据Driver运行在哪里分为2种模式:client模式和cluster模式
在实际开发中,大数据任务都有统一的资源管理和任务调度工具来进行管理----Yarn使用最多
当Spark Application运行到YARN上时,在提交应用时指定master为yarn即可,同时需要告知YARN集群配置信息(比如ResourceManager地址信息),此外需要监控Spark Application,配置历史服务器相关属性
spark客户端连接Yarn,不需要额外构建集群,只需要一个单机版的spark解压包即可。
- 停止Standalone模式下的spark集群 (注意执行路径)
[root@bigdata1 spark-standalone]# sbin/stop-all.sh
- 为了防止和Standalone模式冲突,再单独解压一份spark用来做Spark on Yarn 模式
[root@bigdata01 software]# tar -zxvf spark-3.0.3-bin-hadoop3.2.tgz -C /opt/module/
[root@bigdata01 module]# mv spark-3.0.3-bin-hadoop3.2/ spark-yarn
- 配置环境变量
#SPARK_HOME
export SPARK_HOME=/opt/module/spark-yarn
export PATH=$PATH:$SPARK_HOME/bin
- 修改配置(修改hadoop配置文件/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml)
#因为测试环境虚拟机内存较少,防止执行过程进行被意外杀死,做如下配置
#修改hadoop配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml,添加如下内容
#关闭yarn的内存检查
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
- 分发配置文件
[root@bigdata1 hadoop]# scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml bigdata02:/opt/module/hadoop/etc/hadoop
[root@bigdata1 hadoop]# scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml bigdata03:/opt/module/hadoop/etc/hadoop
[root@bigdata1 conf]# mv spark-env.sh.template spark-env.sh
[root@bigdata1 conf]# vim spark-env.sh
export JAVA_HOME=/opt/module/jdk
export YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
7.重启Hadoop
[root@bigdata1 opt]# start-dfs.sh
[root@bigdata1 opt]# start-yarn.sh
8.求PIclare
[root@bigdata01 spark-yarn]#
${SPARK_HOME}bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode
--num-executors 2 \
${SPARK_HOME}/examples/jars/spark-examples_2.12-3.0.3.jar \
10
--deploy-mode cluster \
--driver-memory 512m \
--executor-memory 512m \
结果:
Pi is roughly 3.142211142211142
配置spark历史服务器
1.cp spark-defaults.conf.template spark-defaults.conf
vi /opt/module/spark-yarn/conf/spark-defaults.conf
#spark日志聚合开启
spark,eventLog.enabled true
#spark日志目录位置
spark.eventLog.dir hdfs://bigdata1:9000/spark/logs
#spark日志压缩
spark.eventLog.compress true
#spark yarn历史服务器的地址
spark.yarn.historyServer.address bigdata1:18080
2.vi /opt/module/spark-yarn/conf/spark-env.sh
#HADOOP软件配置文件目录,读取HDFS上文件和运行Spark在YARN集群时需要
HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=bigdata1:2181,bigdata2:2181,bigdata3:2181
-Dspark.deploy.zookeeper.dir=/spark/zookeeper"
#配置spark历史日志存储地址
SPARK_HISTORY_OPTS="
-Dspark.history.fs.logDirectory=hdfs://bigdata1:9000/spark/logs
-Dspark.history.fs.cleaner.enabled=true"
hdfs dfs -mkdir -p /spark/logs
3.设置日期级别
vi log4j.properties
log4j.rootCategory=WARN,console
4.配置spark依赖的jar包
1. hdfs dfs -mkdir -p /spark/jars/
2. hdfs dfs -put /opt/module/spark-yarn/jars/* /spark/jars/
3.在bigdata01上修改spark-defaults.conf
添加内容:
spark.yarn.jars hdfs://bigdata1:9000/
–master yarn
–deploy-mode cluster
–driver-memory 512m
–executor-memory 512m
–num-executors 1
–class org.example.spark1.WordCount
/usr/local/src/wc.jar
hdfs://mycluster/wordcount/input/words.txt
hdfs://mycluster/wordcount/output