文章目录
- Spark运行环境
- Linux环境下运行本地Spark
- Standalone 模式
- Yarn模式
- K8S & Mesos 模式
- Windows 模式
Spark运行环境
- Spark 作为一个数据处理框架和计算引擎,被设计在所有常见的集群环境中运行, 在国内工作中主流的环境为 Yarn,不过逐渐容器式环境也慢慢流行起来。接下来看看不同环境运行的spark
Linux环境下运行本地Spark
- 所谓的 Local 模式,就是不需要其他任何节点资源就可以在本地执行 Spark 代码的环境,一般用于教学,调试,演示等,之前在 IDEA 中运行代码的环境我们称之为开发环境,不太一样。
- 第一步 ,将spark-3.0.0-bin-hadoop3.2.tgz 文件上传到你对应的linux,具体操作可以上网查,也可以去看我hadoop专栏里第一篇,一般上传都是用xshell,通过命令
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
解压。 - 第二步,进入到指定压缩路径,然后这里可以使用命令
bin/spark-shell
启动spark - 第三步,在data中创建一个word.txt,然后通过语句
sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
来就算文件中的单词
Standalone 模式
- local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,这里我们来看看只使用 Spark 自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark 的 Standalone 模式体现了经典的 master-slave 模式。
- 解压缩文件
- 将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩在指定位置
- 修改配置文件
- 进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves
- 第一种方法就是使用命令:
mv slaves.template slaves
- 第二种方法就是使用xftp更改
- 修改 slaves 文件,添加 work 节点
- 修改 spark-env.sh.template 文件名为 spark-env.sh
- 第一种方法就是使用命令:
mv spark-env.sh.template spark-env.sh
- 第二种方法就是使用xftp更改
- 修改 spark-env.sh 文件,添加 JAVA_HOME 环境变量和集群对应的 master 节点
- 注意:7077 端口,相当于 hadoop3 内部通信的 8020 端口,此处的端口需要确认自己的 Hadoop
配置
- 分发目录:
xsync 目录
- 启动集群:
sbin/start-all.sh
- 查看三台服务器是否已经启动:
- 可以在网站上观看资源webUI界面:http://hadoop102:8080
- 配置成功之后,就可以测试一下,使用命令
bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://linux1:7077 \ ./examples/jars/spark-examples_2.12-3.0.0.jar \ 10
- 下面来说一下,上面语句提交任务参数说明
- 配置历史服务
- 由于spark-shell停止掉后,集群监控 linux1:4040 页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。
- 修改 spark-defaults.conf.template 文件名为 spark-defaults.conf
mv spark-defaults.conf.template spark-defaults.conf
- 修改 spark-default.conf 文件,配置日志存储路径
- 注意:需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在。
- 修改 spark-env.sh 文件, 添加日志配置
- 分发配置文件:
xsync conf
- 重新启动集群和历史服务:
- 重新执行任务
- 查看历史服务:http://linux1:18080
- 配置高可用(HA)
Yarn模式
K8S & Mesos 模式
Windows 模式