1.CM(Cloudera Manager)介紹html
1.1 簡介java
Cloudera Manager是一個擁有集羣自動化安裝、中心化管理、集羣監控、報警功能的一個工具,使得安裝集羣從幾天的時間縮短在幾個小時內,運維人員從數十人下降到幾人之內,極大的提升集羣管理的效率。python
對比Apache / CDH / HDP:mysql
(1)Apache:運維麻煩,組件間兼容性須要本身調研。(通常大廠使用,技術實力雄厚,有專業的運維人員)
(2)CDH:國內使用最多的版本,但CM不開源,但其實對中、小公司使用來講沒有影響(建議使用)
(3)HDP:開源,能夠進行二次開發,可是沒有CDH穩定,國內使用較少sql
1.2 CM架構shell
1)Cloudera Repository:軟件由Cloudera管理分佈存儲庫。(有點相似Maven的中心倉庫)
2)Server:負責軟件安裝、配置,啓動和中止服務,管理服務運行的羣集。
3)Management Service:由一組執行各類監控,警報和報告功能角色的服務。
4)Database:存儲配置和監視信息。
5)Agent:安裝在每臺主機上。負責啓動和中止的過程,配置,監控主機。
6)Clients:是用於與服務器進行交互的接口(API和Admin Console)數據庫
2.環境準備json
2.1 集羣規劃vim
項目中採用3臺虛擬機做爲測試集羣進行部署:hadoop10一、hadoop10二、hadoop103(對應內存分別是:16G、4G、4G)centos
集羣規劃參考:https://blog.51cto.com/12445535/2366197?tdsourcetag=s_pcqq_aiomsg
2.2 虛擬機準備
操做系統:CentOS 7
2)安裝JDK:1.8(全部節點)
CentOS自帶OpenJdk,不過運行CDH5須要使用Oracle的JDK
3)克隆三臺虛擬機,設置hostname、hosts、靜態IP、關閉防火牆(全部節點)
設置hadoop10一、hadoop10二、hadoop103的主機對應內存分別是:16G、4G、4G
6)在hadoop101節點安裝MySQL5.6(主節點)
8)設置swap空間(全部節點)
(Cloudera建議將交換空間設置爲0,過多的交換空間會引發GC耗時的激增,因此仍是關閉的爲好)
echo "vm.swappiness = 0" >> /etc/sysctl.conf
9)關閉大頁面壓縮執行命令 (全部節點)
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
10)建立CM用的數據庫(主節點)
在MySQL中依次建立監控數據庫、Hive數據庫、Oozie數據庫、Hue數據庫
[root@hadoop101 ~]# mysql -uroot -p000000 # 啓動數據庫,000000爲設置的登錄密碼
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #集羣監控數據庫
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Hive數據庫
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Oozie數據庫
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Hue數據庫
mysql> quit;
11)下載第三方依賴(全部節點)
依次在三臺節點上執行下載第三方依賴(注意:須要聯網)
[root@hadoop101 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb [root@hadoop102 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb [root@hadoop103 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
3.CM安裝部署
3.1 CM下載地址
本文所採用爲CentOS7的CDH5.12.1版本(版本必定不要錯)
1)CM下載地址:http://archive.cloudera.com/cm5/cm/5/
CentOS6選擇:cloudera-manager-el6-cm5.12.1_x86_64.tar.gz
CentOS7選擇:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
2)離線庫下載地址:http://archive.cloudera.com/cdh5/parcels/5.12.1/
CentOS6:
CentOS7:
3.2 CM安裝
注:如下全部操做均使用root用戶
1)建立/opt/module/cm目錄
[root@hadoop101 module]# mkdir –p /opt/module/cm
2)上傳cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到hadoop101的/opt/software目錄,並解壓到/opt/module/cm目錄
[root@hadoop101 software]# tar -zxvf cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/module/cm
3)分別在hadoop10一、hadoop10二、hadoop103建立用戶cloudera-scm
[root@hadoop101 module]# useradd \ --system \ --home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \ --no-create-home \ --shell=/bin/false \ --comment "Cloudera SCM User" cloudera-scm [root@hadoop102 module]# useradd \ --system \ --home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \ --no-create-home \ --shell=/bin/false \ --comment "Cloudera SCM User" cloudera-scm [root@hadoop103 module]# useradd \ --system \ --home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \ --no-create-home \ --shell=/bin/false \ --comment "Cloudera SCM User" cloudera-scm
參數說明:
--system 建立一個系統帳戶
--home 指定用戶登入時的主目錄,替換系統默認值/home/<用戶名>
--no-create-home 不要建立用戶的主目錄
--shell 用戶的登陸 shell 名
--comment 用戶的描述信息
注意:Cloudera Manager默認去找用戶cloudera-scm,建立完該用戶後,將自動使用此用戶。
4)修改CM Agent配置
修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/ config.ini的主機名稱
[root@hadoop101 cloudera-scm-agent]# vim /opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini
修改主機名稱
server_host=hadoop101
5)配置CM的數據庫
拷貝mysql-connector-java-5.1.27-bin.jar文件到目錄 /usr/share/java/
[root@hadoop101 cm]# mkdir –p /usr/share/java/ [root@hadoop101 cm]# cd /opt/software/mysql-libs/
[root@hadoop101 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz [root@hadoop101 mysql-libs]# cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java/ [root@hadoop101 mysql-libs]# mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar
注意:jar包名稱要修改成mysql-connector-java.jar
6)使用CM自帶的腳本,在MySQL中建立CM庫(紅字部分要按實際修改)
[root@hadoop101 cm-5.12.1]# /opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop101 -uroot -p000000 --scm-host hadoop101 scm scm scm
參數說明
-h:Database host
-u:Database username
-p:Database Password
--scm-host:SCM server's hostname
在執行這一步可能會報錯:參考:https://www.cnblogs.com/MWCloud/p/11352557.html
java.sql.SQLException: Access denied for user 'scm'@'hadoop101.com' (using password: YES)
7)分發cm(xsync同步分發腳本編寫)
[root@hadoop102 module]# xsync /opt/module/cm
8)建立Parcel-repo
[root@hadoop101 module]# mkdir -p /opt/cloudera/parcel-repo [root@hadoop101 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
9)拷貝下載文件manifest.json 、CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 、CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel到hadoop101的/opt/cloudera/parcel-repo/目錄下
[root@hadoop101 parcel-repo]# ll total 1603040 -rw-r--r-- 1 root root 1641431040 Aug 16 19:02 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel -rw-r--r-- 1 root root 41 Aug 16 19:00 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 -rw-r--r-- 1 root root 72312 Aug 16 19:00 manifest.json
10)將CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1:需更名爲CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
[root@hadoop101 parcel-repo]# mv CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
11)在hadoop101上建立目錄/opt/cloudera/parcels,並修改該目錄的所屬用戶及用戶組爲cloudera-scm
[root@hadoop101 module]# mkdir -p /opt/cloudera/parcels [root@hadoop101 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
12)分發/opt/cloudera/
[root@hadoop101 opt]# xsync /opt/cloudera/
3.3 啓動CM服務
1)啓動服務節點:hadoop101
[root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server start Starting cloudera-scm-server: [ OK ]
2)啓動工做節點:hadoop10一、hadoop10二、hadoop103
[root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start [root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start [root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start
注意:啓動過程很是慢,Manager啓動成功須要等待5分鐘左右,過程當中會在數據庫中建立對應的表須要耗費一些時間。
cloudera-scm-agent start啓動失敗解決:
3)查看被佔用則表示啓動成功了!!!
[root@hadoop101 cm]# netstat -anp | grep 7180 tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5498/java
3.4 關閉CM服務(這裏只是介紹操做,部署過程跳過此節)
1)關閉工做節點:hadoop10一、hadoop10二、hadoop103
[root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop Stopping cloudera-scm-agent: [肯定] [root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop Stopping cloudera-scm-agent: [肯定] [root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop Stopping cloudera-scm-agent: [肯定]
2)關閉服務節點:hadoop101
[root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server stop 中止 cloudera-scm-server: [肯定]
3.5 CM集羣部署
1)訪問http://hadoop101.com:7180,(用戶名、密碼:admin)建議在虛擬機的節點中訪問CM進行安裝
這裏選擇已經存在的三個節點:
等待下載安裝Parcel,該過程大概10分鐘
最後一步,檢查集羣安全性
3.6 組件安裝(按需求安裝)
1)選擇自定義服務
2)選擇HDFS、YARN、ZooKeeper
3)節點角色分配
4)集羣設置默認
5)自動啓動進程
6)安裝完成!