Spark高可用模式和Spark分布式Yarn环境安装

Spark分布式HA环境安装

图-12 高可用模式原理

因为在目前情况下,集群中只有一个Master,如果master挂掉,便无法对外提供新的服务,显然有单点故障问题,解决方法就是master的ha。

有两种方式解决单点故障,一种基于文件系统FileSystem(生产中不用),还有一种基于Zookeeper(使用)。

配置基于Zookeeper的一个ha是非常简单的,只需要在spark-env.sh中添加一句话即可。

修改配置文件

注释掉如下内容:

复制代码
#SPARK_MASTER_HOST=hadoop101

SPARK_MASTER_PORT=7077

添加上如下内容:配置的时候保证下面语句在一行,否则配置不成功,每个-D参数使用空格分开

复制代码
export SPARK_DAEMON_JAVA_OPTS="

-Dspark.deploy.recoveryMode=ZOOKEEPER

-Dspark.deploy.zookeeper.url=hadoop101:2181,hadoop102:2181,hadoop103:2181

-Dspark.deploy.zookeeper.dir=/spark"

spark.deploy.recoveryMode设置成 ZOOKEEPER。

spark.deploy.zookeeper.urlZooKeeper URL。

spark.deploy.zookeeper.dir ZooKeeper 保存恢复状态的目录,缺省为/spark。

因为ha不确定master在hadoop101上面启动,所以将export SPARK_MASTER_HOST=hadoop101注释掉。

最后别忘了,同步spark-env.sh到其它机器。

复制代码
scp -r spark-env.sh hadoop102:$PWD

scp -r spark-env.sh hadoop103:$PWD

启动并体验

:wq

图-13 hadoop101的master状态图

hadoop102也启动master,其状态如图-14:

图-14 hadoop102的master状态图

提交任务&执行程序:

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master spark://hadoop101:7077,hadoop102:7077 \

./examples/jars/spark-examples_2.12-3.5.0.jar \

100

ha验证,要干掉alive的master,观察standby的master,hadoop102的状态缓慢的有standby转变为alive。

图-15 ha切换之后的master状态图

动态增删节点

1)上线:不需要在现有集群的配置上做任何修改,只需要准备一台worker机器即可,可和之前的worker的配置相同。

图-16 spark集群启动slave配置图

sbin/start-slave.sh hadoop101:7077 -c 4 -m 1024M

2)下线:杀掉对应slave进程,或者执行脚本stop-slave.sh

图-17 动态下线

Spark分布式Yarn环境安装

修改hadoop配置文件

复制代码
vim 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>

修改spark配置文件

复制代码
vim spark-env.sh

YARN_CONF_DIR=/opt/module/hadoop-3.2.4/etc/hadoop

HADOOP_CONF_DIR=/opt/module/hadoop-3.2.4/etc/hadoop

启动并体验

复制代码
1)client模式:

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode client \

./examples/jars/spark-examples_2.12-3.5.0.jar \

100

注意:在提交任务之前需启动HDFS以及YARN集群。

2)cluster模式:

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \

./examples/jars/spark-examples_2.12-3.5.0.jar \

100
相关推荐
美林数据Tempodata1 天前
“双新”指引,AI驱动:工业数智应用生产性实践创新
大数据·人工智能·物联网·实践中心建设·金基地建设
人间打气筒(Ada)1 天前
Centos7 搭建hadoop2.7.2、hbase伪分布式集群
数据库·分布式·hbase
原来是好奇心1 天前
消息队列终极选型:RabbitMQ、RocketMQ、Kafka与ActiveMQ深度对比
分布式·kafka·rabbitmq·rocketmq·activemq·mq
com_4sapi1 天前
2025 权威认证头部矩阵系统全景对比发布 双榜单交叉验证
大数据·c语言·人工智能·算法·矩阵·机器人
9ilk1 天前
【仿RabbitMQ的发布订阅式消息队列】 ---- 功能测试联调
linux·服务器·c++·分布式·学习·rabbitmq
周杰伦_Jay1 天前
【RPC:分布式跨节点透明通信协议】【Raft:简单易实现的分布式共识算法】
分布式·rpc·共识算法
鲸能云1 天前
政策解读 | “十五五”能源规划下储能发展路径与鲸能云数字化解决方案
大数据·能源
嗝屁小孩纸1 天前
免费测评RPC分布式博客平台(仅用云服务器支持高性能)
服务器·分布式·rpc
Alex艾力的IT数字空间1 天前
完整事务性能瓶颈分析案例:支付系统事务雪崩优化
开发语言·数据结构·数据库·分布式·算法·中间件·php
五度易链-区域产业数字化管理平台1 天前
五度易链大数据治理实战:从数据孤岛到智能决策
大数据