Spark on Yarn 高可用模式部署流程
一、引言
Spark是一个用于大规模数据分析处理的分布式计算框架,适用于快速处理大数据的场景。Yarn是一个资源调度框架,用于集群资源的调度和管理。Spark 的任务也可以提交到Yarn中运行,由Yarn进行资源调度。在生产环境中,为了避免单点故障导致整个集群不可用的情况,一个很好的方式就是部署一个HA高可用的运行环境。
二、环境
1、 前提环境
配置高可用,首先要保证下面三个环境能正常运行。
- yarn集群
- spark集群
- zookeeper集群
2、zookeeper作用
以zookeeper在Spark集群中为例,在Yarn集群中也是同样的作用。
- Master节点的高可用性
Spark 高可用中,会有多个个Master节点,zookeeper会协助管理哪些Master节点是活动的,哪些是备份的。
- Master节点的选举机制
Spark 高可用中,使用zookeeper来实现Master节点的选举。在Spark集群中有多个Master节点时,zookeeper会确保只有一个节点是活跃的。一旦当前主节点失败,zookeeper会重新选举出一个新的Master节点,保证集群正常运行。
-
保存元数据和配置信息
Zookeeper用来保存和共享Spark集群的配置信息、状态、集群的元数据。当Master节点切换时,可以做到数据同步。
Zookeeper在集群中通过Master节点选举和故障恢复来确保集群的稳定运行。通过使用Zookeeper,可以有效的避免单点故障,在Master发生异常时自动切换,保证计算任务正常运行。
三、Yarn HA 配置
1、首先执行stop-yarn.sh,停止现有的yarn环境
2、在yarn-site.xml中,添加如下配置
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 开启RM高可用 --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 指定RM的cluster id --><property><name>yarn.resourcemanager.cluster-id</name><value>yrc