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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章