基于YARN HA集群的Spark HA集群

前言

  在前面的《基于hadoop3.1.2分布式平台上部署spark HA集群》,这篇是基于非HA模式下hadoop集群的spark集群HA配置,而本文将给出基于HA模式下hadoop集群的spark集群HA配置,并将yarn HA集群映入到spark中,做资源管理。为何要做些环境的配置呢?因为到本篇文章为止,已经完成hadoop HA集群、hbaseHA集群,hive集群(非HA)、sparkHA集群、flumeHA集群、kafka HA集群,实现实时数据流动,接下的文章重点探讨spark streaming、spark以及pyspark相关知识,这将涉及多个计算任务以及相关计算资源的分配,因此需要借助yarn HA集群强大的资源管理服务来管理spark的计算任务,从而实现完整的、接近生产环境的、HA模式下的大数据实时分析项目的架构。
服务器资源分配表(仅列出yarn和spark):

节点 yarn 角色 spark 角色
nn ResourceManager, NodeManager Master,Worker
dn1 NodeManager Worker
dn2 ResourceManager, NodeManager Master,Worker

  这里再提下yarn管理大数据集群计算中对资源有效管理(主要指CPU、物理内存以及虚拟内存)的重要性:

  整个集群的计算任务由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为计算任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。

因为spark就是负责计算,有大量计算任务要运行,每个任务总得分配cpu和内存给它用,否则某些计算任务会被“饿死”(巧妇难为无米之炊),这种比喻比较形象。

1、yarn HA模式的配置

yarn HA模式的运行是于hadoop HA模式运行的,关于hadoop HA部署和测试可以参考本博客文章《基于Hadoop HA集群部署HBase HA集群(详细版)》的第6章内容,考虑到后面文章将会给出各种spark计算任务,结合测试服务器本身cpu和内存资源有限,这里主要重点介绍yarn-site.xml和mapred-site.xml配置文件说明。

1.1 完整 yarn-site.xml配置

yarn-site的配置其实分为两大块:第一部分为yarn HA集群的配置,第二部分为根据现有测试服务器资源来优化yarn配置。
yarn-site.xml在三个节点上都使用相同配置,无需更改
第一部分:yarn HA集群的配置
(注意这里仅给出property,若复制该配置内容,需在xml文件里面加入<configuration></configuration>

  <!-- 启用yarn HA高可用性 -->
  <property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
  </property>

  <!-- 指定resourcemanager的名字,自行命名,跟服务器hostname无关 -->
  <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>hayarn</value>
  </property>

  <!-- 使用了2个resourcemanager,分别指定Resourcemanager的地址 -->
  <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
  </property>
  
  <!-- 指定nn节点为rm1 -->
  <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>nn</value>
  </property>
  
  <!-- 指定dn2节点为rm2  -->
  <property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>dn2</value>
  </property>
  
  <!-- 指定当前机器nn作为主rm1 -->
  <property>
    <name>yarn.resourcemanager.ha.id</name>
    <value>rm1</value>
  </property>
  
  <!-- 指定zookeeper集群机器 -->
  <property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>nn:2181,dn1:2181,dn2:2181</value>
  </property>
  
  <!-- NodeManager上运行的附属服务,默认是mapreduce_shuffle -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>


以上将nn和dn2作为yarn集群主备节点,对应的id为rm1、rm2

第二部分:yarn的优化配置
A、禁止检查每个任务正使用的物理内存量、虚拟内存量是否可用
若任务超出分配值,则将其杀掉。考虑到作为测试环境,希望看到每个job都能正常运行,以便记录其他观测事项,这里将其关闭。

  <property>
   	<name>yarn.nodemanager.pmem-c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值