当前位置:网站首页>Spark 集群安装与部署
Spark 集群安装与部署
2022-07-03 09:00:00 【小胡今天有变强吗】
Spark集群安装部署
集群规划:
三台主机的名称为:hadoop102, hadoop103, hadoop104。集群规划如下:
hadoop102 | hadoop103 | hadoop104 |
---|---|---|
Master+Worker | Worker | Worker |
上传并解压
Spark下载地址:
https://spark.apache.org/downloads.html
将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩在指定位置
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark
修改配置文件
进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves
mv slaves.template slaves
修改 slaves 文件,添加 work 节点
hadoop102 hadoop103 hadoop104
修改 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 //修改为自己对应的jdk路径 SPARK_MASTER_HOST=hadoop102 SPARK_MASTER_PORT=7077
分发 spark 目录
xsync spark
注意需要提前安装xsync免密登录,如果未配置可以参考:https://blog.csdn.net/hshudoudou/article/details/123101151?spm=1001.2014.3001.5501
启动集群
执行脚本命令:
sbin/start-all.sh
- 查看三台服务器的进程
- 查看 Master 资源监控 Web UI 界面: http://hadoop102:8080
提交应用
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
–class 表示要执行程序的主类
–master spark://hadoop102:7077 独立部署模式,连接到 Spark 集群
spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包
数字 10 表示程序的入口参数,用于设定当前应用的任务数量
提交参数说明:在提交应用中,一般会同时一些提交参数
参数 | 解释 | 可选值举例 |
---|---|---|
–class | Spark 程序中包含主函数的类 | |
–master | spark 程序运行的模式(环境) | 模式:local[*]、spark://linux1:7077、 Yarn |
–executor-memory 1G | 指定每个 executor 可用内存为 1G | 其余配置根据情况设定即可 |
–total-executor-cores 2 | 指定所有executor使用的cpu核数为 2 个 | |
–executor-cores | 指定每个executor使用的cpu核数 | |
application-jar | 打包好的应用 jar,包含依赖。 | |
application-arguments | 传给 main()方法的参数 | |
配置历史服务器
修改 spark-defaults.conf.template 文件名为 spark-defaults.conf
mv spark-defaults.conf.template spark-defaults.conf
修改 spark-default.conf 文件,配置日志存储路径
spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop102:8020/directory
需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在。
如果不存在,需要进行创建:
sbin/start-dfs.sh
hadoop fs -mkdir /director
修改 spark-env.sh 文件, 添加日志配置
export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory -Dspark.history.retainedApplications=30"
分发配置文件
xsync conf
重新启动集群和历史服务
sbin/start-all.sh sbin/start-history-server.sh
重新执行任务
bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hadoop102:7077 \ ./examples/jars/spark-examples_2.12-3.0.0.jar \ 10
查看历史服务:http://hadoop102:18080
配置高可用(HA)
所谓的高可用是因为当前集群中的 Master 节点只有一个,所以会存在单点故障问题。所以 为了解决单点故障问题,需要在集群中配置多个 Master 节点,一旦处于活动状态的 Master 发生故障时,由备用 Master 提供服务,保证作业可以继续执行。这里的高可用一般采用 Zookeeper 设置。
集群规划:
hadoop02 | hadoop103 | hadoop04 |
---|---|---|
Master Zookeeper Worker | Master Zookeeper Worker | Zookeeper Worker |
停止集群
sbin/stop-all.sh
启动zookeeper
zk.sh start //这儿是利用脚本命令启动,如果没有写脚本,可以在zookeeper目录下用下面命令 xstart zk
修改 spark-env.sh 文件添加如下配置
注释如下内容:
#SPARK_MASTER_HOST=hadoop102
#SPARK_MASTER_PORT=7077
添加如下内容:
#Master 监控页面默认访问端口为 8080,但是可能会和 Zookeeper 冲突,所以改成 8989,也可以自
定义,访问 UI 监控页面时请注意
SPARK_MASTER_WEBUI_PORT=8989
export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop102,hadoop103,hadoop104 -Dspark.deploy.zookeeper.dir=/spark"
分发配置文件
xsync conf/
Yarn 模式
上述的部署模式为独立部署(Standalone)模式,独立部署模式由 Spark 自身提供计算资源,无需其他框架提供资源。这 种方式降低了和其他第三方资源框架的耦合性,独立性非常强。Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,因此更多的还是利用Yarn模式。
- 修改 hadoop 配置文件/opt/module/hadoop/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>
修改 conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置
export JAVA_HOME=/opt/module/jdk1.8.0_144 //替换成自己的jdk目录 YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop //替换成自己打包hadoop目录
- 启动 HDFS 以及 YARN 集群
边栏推荐
- Common penetration test range
- LeetCode 715. Range module
- Beego learning - JWT realizes user login and registration
- Numerical analysis notes (I): equation root
- AcWing 785. 快速排序(模板)
- C language programming specification
- 【点云处理之论文狂读经典版12】—— FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation
- On February 14, 2022, learn the imitation Niuke project - develop the registration function
- AcWing 785. Quick sort (template)
- 2022-2-13 learning the imitation Niuke project - home page of the development community
猜你喜欢
传统企业数字化转型需要经过哪几个阶段?
Introduction to the basic application and skills of QT
【点云处理之论文狂读经典版13】—— Adaptive Graph Convolutional Neural Networks
Sword finger offer II 091 Paint the house
Just graduate student reading thesis
LeetCode 513. 找树左下角的值
[point cloud processing paper crazy reading classic version 7] - dynamic edge conditioned filters in revolutionary neural networks on Graphs
2022-2-14 learning xiangniuke project - Session Management
Jenkins learning (III) -- setting scheduled tasks
【点云处理之论文狂读前沿版9】—Advanced Feature Learning on Point Clouds using Multi-resolution Features and Learni
随机推荐
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
CSDN markdown editor help document
Windows安装Redis详细步骤
Hudi 快速体验使用(含操作详细步骤及截图)
Internet Protocol learning record
What are the stages of traditional enterprise digital transformation?
Low code momentum, this information management system development artifact, you deserve it!
LeetCode 535. Encryption and decryption of tinyurl
AcWing 787. 归并排序(模板)
[set theory] order relation (eight special elements in partial order relation | ① maximum element | ② minimum element | ③ maximum element | ④ minimum element | ⑤ upper bound | ⑥ lower bound | ⑦ minimu
Save the drama shortage, programmers' favorite high-score American drama TOP10
【Kotlin学习】高阶函数的控制流——lambda的返回语句和匿名函数
Sword finger offer II 029 Sorted circular linked list
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks
推荐一个 yyds 的低代码开源项目
Hudi integrated spark data analysis example (including code flow and test results)
AcWing 786. Number k
[point cloud processing paper crazy reading classic version 12] - foldingnet: point cloud auto encoder via deep grid deformation
Go language - IO project
【毕业季|进击的技术er】又到一年毕业季,一毕业就转行,从动物科学到程序员,10年程序员有话说