Cloudera Manager HA模式搭建

前言

从事大数据方向的程序员 应该都对CDH比较熟悉,这是一款市场上比较好用的免费的数据平台系统,在CDH上我们可以安装部署兼容的hadoop sprk zookeeper kafka等常用的大数据服务,虽然现在暂不支持flink,将来兼容一定是大势所驱。
这篇博客我们要讲的是CDH中自带的一个非常重要的负责监控和管理各个数据服务的服务-Cloudera Manager,对于很多人来说 对这个应该不陌生。
一般而言,cloudera manager都采用的单点模式,即部署单个server 单点service。 但是在一个集群作业特别繁忙的场景中,为了提高Cloudera Manager的高可靠性,我们最好部署Cloudera Manager HA(主从server 主从service)来提高系统的高可靠性。

Cloudera Manager HA模式搭建

1.设置主机和负载平衡器

在一个高水平,在单独的主机上设置Cloudera Manager Server和Cloudera Management Service 角色(包括Cloudera Navigator),并确保通过配置的负载平衡器对来自其他Cloudera服务和管理控制台的主机进行网络访问。

它主要分为4步:
1.为主服务器和辅助服务器创建主机
2.设置负载均衡器
3.设置数据库
4.设置NFS服务器

Cloudera Manager Server,Cloudera Navigator以及使用关系数据库的所有Cloudera Management Service角色都应使用位于主机外的外部数据库服务器。您必须确保将这些数据库配置为高可用性。(这里说明一下:因为之前公司内部应用的CM 单点 数据库都是搭建在集群内部,所以这类并没有使用外部数据库服务器)

数据库高可用的实质就是配置一个MySQL主从复制的服务器

1.1 MySQL互为主从复制以及负载均衡的配置

具体过程前面有一篇博客已经讲述。
3. haproxy负载均衡mysql
这里我们选择在主机172.17.17.92安装

  1. yum install haproxy
    2.修改配置
    vi /etc/haproxy/haproxy.cfg
    添加配置
    listen mysql
    bind 0.0.0.0:3306
    mode tcp
    option tcplog
    balance leastconn
    server 172.17.17.21 172.17.17.21:3306 check
    server 172.17.17.25 172.17.17.25:3306 check

3启动
在解压目录下执行haproxy -f /etc/haproxy/haproxy.cfg
关于配置其他CM Service角色(例如 Service Monitor和Host Monitor角色),这些角色使用文件支

关于配置其他CM Service角色(例如 Service Monitor和Host Monitor角色),这些角色使用文件支持的存储机制将其存储在共享NFS存储机制上。

1.2 为主从server服务器选定主机

Cloudera建议为Cloudera Manager服务使用四台主机。所有这些主机必须正确解析正向和反向DNS查找:
Cloudera Manager Server主要主机(主机名: CMS1 [147])
Cloudera Management Service主要主机(主机名: MGMT1 [148])
Cloudera Manager Server辅助主机(主机名: CMS2 [145])
Cloudera Management Service辅助主机(主机名: MGMT2 [146])

1.3 设置负载平衡器

在集群中 保留两个主机作为CM Server和CM Service的外部访问主机。一个(CMSHostname 144) 用于访问Cloudera Manager Admin Console,另外一个(MGMTName 143)用于从Cloudera Manager Server和CLoudera Manager Agents对Cloudera Manager Service进行内部访问。

  1. 下载安装haproxy: yum install haproxy
  2. 在144 143上配置HAProxy自启动: chkconfig haproxy on
  3. 配置HAProxy : 编辑/etc/haproxy/haproxy.cfg文件,在144中添加7180 7182 7183 在143中添加5683 7184 7185 7186….
    备注:HAProxy是一个可信的,高性能的TCP/HTTP的负载平衡器。

1.4 设置NFS Server(作为共享存储机制,实现高可用远程登录)

1.安装nfs服务: yum install nfs-utils
2.启动nfc rpcbind,并设置为自启动:

systemctl start rpcbind
systemctl start nfs
chkconfig nfs on

2 为HA安装和配置Cloudera Manager Server

2.1 为CM Server设置NFS挂载

1.在CMSHostname 144(这里将其作为NFS Server)上创建目录:
mkdir -p /media/cloudera-scm-server
2.在144中编辑 /etc/exports 添加下面内容 来标记挂载
/media/cloudera-scm-server 172...147(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-server 172...147 (rw,sync,no_root_squash,no_subtree_check)
3. 在144中导出挂载: exportfs –a
4. 在145 147上设置文件挂载
确保nfs安装成功,如果没有安装,则yum install nfs-utils
确保rpcbind运行并重启: systemctl restart rpcbind
5. 在145 147上创建挂载点
1.负载在145或者147上的/var/lib/cloudera-scm-server文件到NFS Server上: scp -r /var/lib/cloudera-scm-server/ 192...144:/media/cloudera-scm-server
2.在145 147上建立待挂载的文件名
rm -rf /var/lib/cloudera-scm-server
mkdir -p /var/lib/cloudera-scm-server
3.通过编辑145 147上的/etc/fstab文件,添加一下内容,设置fstab以便在重启时持久化挂载
172...144:/media/cloudera-scm-server /var/lib/cloudera-scm-server nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0

2.2 安装CM HA中Server的主节点

在CM Server单点的基础上搭建HA模式,官网的建议是分配四台主机分配作为Server的主从 Service的主从。所以这里我们需要打开原有CM Admin Cosole主页,将原有的CM Service停止 并删除

备注:这类我们将147作为HA的主节点

2.3 安装CM HA中Server的从节点

在145上安装cloudera-manager-server,并将147上的/etc/cloudera-scm-server/db.properties文件scp复制到145上

这里需要注意的是从节点上的cloudera-scm-server默认是不开启的,因为他只是在主节点147上的server挂掉之后 才开启。因此,设置从节点上的server默认不要自动启动。
chkconfig cloudera-scm-server off

2.4 更新CLoudera Manager Agents来使用负载平衡器,这是使用144

  1. 在145 147 146 148上更新/etc/cloudera-scm-agent/config.ini(改变server_host值) server_host=172...144
  2. 重启agent: systemctl restart cloudera-scm-agent

3 为HA安装和配置Cloudera Manager Service

3.1 为CM Service设置NFS挂载

  1. 在NFS Server(Service的NFS Server我们选择的是143)创建目录
mkdir -p /media/cloudera-host-monitor
mkdir -p /media/cloudera-scm-agent
mkdir -p /media/cloudera-scm-eventserver
mkdir -p /media/cloudera-scm-headlamp
mkdir -p /media/cloudera-service-monitor
mkdir -p /media/cloudera-scm-navigator
mkdir -p /media/etc-cloudera-scm-agent
  1. 在NFS Server /etc/exports文件中添加一下内容来标记挂载
/media/cloudera-host-monitor MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-agent MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-eventserver MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-headlamp MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-service-monitor MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-navigator MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/etc-cloudera-scm-agent MGMT1(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-host-monitor MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-agent MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-eventserver MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-headlamp MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-service-monitor MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/cloudera-scm-navigator MGMT2(rw,sync,no_root_squash,no_subtree_check)
/media/etc-cloudera-scm-agent MGMT2(rw,sync,no_root_squash,no_subtree_check)
备注:这里的MGMT1 MGMT2分别指的是我们之前选定的146 148主机
  1. 在NFS Server上导出挂载: exportfs -a
  2. 在146 148上设置文件系统挂载
    1) 确保安装了nfs,如果没有,则yum install nfs-utils
    2) 在146 148上创建挂载点目录:
mkdir -p /var/lib/cloudera-host-monitor
mkdir -p /var/lib/cloudera-scm-agent
mkdir -p /var/lib/cloudera-scm-eventserver
mkdir -p /var/lib/cloudera-scm-headlamp
mkdir -p /var/lib/cloudera-service-monitor
mkdir -p /var/lib/cloudera-scm-navigator
mkdir -p /etc/cloudera-scm-agent

3) 在146 148上通过NFS(这里是143)挂载

mount -t nfs NFS:/media/cloudera-host-monitor /var/lib/cloudera-host-monitor
mount -t nfs NFS:/media/cloudera-scm-agent /var/lib/cloudera-scm-agent
mount -t nfs NFS:/media/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver
mount -t nfs NFS:/media/cloudera-scm-headlamp /var/lib/cloudera-scm-headlamp
mount -t nfs NFS:/media/cloudera-service-monitor /var/lib/cloudera-service-monitor
mount -t nfs NFS:/media/cloudera-scm-navigator /var/lib/cloudera-scm-navigator
mount -t nfs NFS:/media/etc-cloudera-scm-agent /etc/cloudera-scm-agent

4) 建立 fstab文件在重新启动时保持挂载.编辑/etc/fstab文件 增加下面行:

NFS:/media/cloudera-host-monitor /var/lib/cloudera-host-monitor nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/cloudera-scm-agent /var/lib/cloudera-scm-agent nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/cloudera-scm-headlamp /var/lib/cloudera-scm-headlamp nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/cloudera-service-monitor /var/lib/cloudera-service-monitor nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/cloudera-scm-navigator /var/lib/cloudera-scm-navigator nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0
NFS:/media/etc-cloudera-scm-agent /etc/cloudera-scm-agent nfs auto,noatime,nolock,intr,tcp,actimeo=1800 0 0

3.2 安装CM Service主节点[我们选择的是148节点]

在原有单点模式下,该节点已经安装成功cloudera-manager-daemons cloudera-manager-agent.
这里我们只需要在原有的单点的模式下,配置代理。

  1. 编辑/etc/cloudera-scm-agent/config.ini文件,添加下面内容:
server_host=172.*.*.144
listening_hostname=172.*.*.143	
  1. 确保 Cloudera-scm 用户和 Cloudera-scm组可以访问下面的已安装目录 在/ var / lib中,通过使用 chown命令 Cloudera-scm:
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-navigator
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-agent
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
  1. 在148重启agent: systemctl cloudera-scm-agent restart

3.3 安装CM Service从节点

原理和步骤 和配置Cm Service主节点类似

4 执行自动故障转移

官网上HA模式下的Server故障转移实现 使用的是Corosync和Pacemaker来实现,但配置过程中遇到诸多坑。我们这里 采用一个相似功能的来进行补充(pcs):
https://clusterlabs.org/quickstart-redhat.html

HA节点回复时间间隔设置:

pcs resource create cloudera-scm-server systemd:cloudera-scm-server op monitor interval=10s
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章