一、Cloudera Manager介紹
Cloudera Manager(簡稱CM)是Cloudera公司開發的一款大數據集群安裝部署利器,這款利器具有集群自動化安裝、中心化管理、集群監控、報警等功能,使得安裝集群從幾天的時間縮短在幾小時以內,運維人員從數十人降低到幾人以內,極大的提高集群管理的效率。
開始之前其實有很多的工作要做,比如配置IP地址、關閉防火牆、配置SSH免密登錄等,這些都是比較常規的環境配置,這里不再贅述,不懂者可以參考大數據 -- Hadoop集群環境搭建中部分內容。
附上大數據“前世今生”的一篇文章給大家,希望大家對大數據有更多的了解,大數據的前世今生:誕生、發展、未來?
1、CM技術架構
- Agent:安裝在每台主機上,負責啟動和停止的過程、拆包配置、觸發裝置和監控主機;
- Management Service:一組執行各種監控、警報和報告功能角色的服務;
- Database:存儲配置和監視信息,通常情況下,多個邏輯數據庫在一個或多個數據庫服務器上運行;例如,Cloudera的管理服務器和監控角色使用不同的邏輯數據庫;
- Cloudera Repository:軟件由Cloudera 管理分布存儲庫;
- Clients:是用於與服務器進行交互的接口;
- Admin Console :基於Web的用戶界面與管理員管理集群和Cloudera管理;
- API :與開發人員創建自定義的Cloudera Manager應用程序的API;
2、CM四大功能
- 管理:對集群進行管理,如添加、刪除節點等操作;
- 監控:監控集群的健康情況,對設備的各種指標和系統運行情況進行全面監控;
- 診斷:對集群出現的問題進行診斷,對出現的問題給出建議解決方案;
- 集成:對hadoop的多種組件進行整合;
3、分析表格
Cloudera Manager出現背景 | 當一個開源的產品做的越來越好以后,就有人希望從開源產品里面賺錢。在Hadoop開源中賺錢的標志是Cloudera公司在2008年誕生。 |
解決什么問題 | 大量減少集群部署時間 升級和各個生態技術的兼容性強 支持Kerberos安全認證 易於維護 修復很多hadoop的bug 基於web界面的管理集群方式 能夠監控集群的運行狀態並告警 |
劣勢 | 系統依賴高 自定制源代碼難度高 帶有付費產品功能 涉及到廠商鎖定的問題 |
4、本教程使用虛擬機配置
根據自己的PC進行配置:
192.168.1.101(zy1) | 192.168.1.102(zy2) | 192.168.1.103(zy3) | |
角色 | Server/Agent | Agent | Agent |
CPU | 4核 | 2核 | 2核 |
內存 | 16G | 8G | 4G |
二、集群時間同步
之所以要做服務器集群的時間同步,我想大家應該不言而喻了吧,CM要求各個節點之間的時間不能夠相差太多,為的就是保證集群的統一管理和減少不必要的錯誤、麻煩。還有一個原因就是一般企業里用到的服務器是不能夠連接外網的,所以第一步我們就開始做服務器集群時間同步。
1、配置時間為中國的時區
CST為中國中部標准時間,如果不是CST,將所有主機都修改為CST:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、ntp時間同步服務器安裝
這里需要安裝一個時間主服務器,其它節點的時間分別去同步這台時間主服務器,這樣就可以統一去管理時間了,ntp剛好提供了這一功能,其它的節點按照時間間隔進行不斷同步,達到時間一致的效果。
每台服務器都需要安裝ntp,通過yum進行安裝:
yum install -y ntp
3、配置ntp
1)修改所有節點的/etc/ntp.conf
vi /etc/ntp.conf
restrict 192.168.1.10x nomodify notrap nopeer noquery //當前節點IP地址 restrict 192.168.1.1 mask 255.255.255.0 nomodify notrap //集群所在網段的網關(Gateway),子網掩碼(Genmask)
2)選擇一個主節點zy1,修改其/etc/ntp.conf
vi /etc/ntp.conf
在server部分添加一下部分,並注釋掉server 0 ~ n
server 127.127.1.0 Fudge 127.127.1.0 stratum 10
3)主節點以外,繼續修改/etc/ntp.conf
vi /etc/ntp.conf
在server部分添加如下語句,將server指向主節點:
server 192.168.1.101 Fudge 192.168.1.101 stratum 10
修改后,各個節點配置如下:
主節點(zy1):
其它節點zy2:
節點zy3:
4、啟動ntp服務
執行以下命令后,ntp服務就會啟動成功,並開啟了自啟動:
systemctl start ntpd.service
systemctl enable ntpd.service
service ntpd status
三 設置SELINUX
編輯/etc/sysconfig/selinux文件,把把里邊的一行改為SELINUX=disabled**,然后重啟就可以了:
四 安裝mysql數據庫
mysql數據安裝在哪都可以,只要能夠訪問到這個數據庫就可以,這里將數據庫安裝在zy1節點上,具體可以參考博客:Linux下yum方式安裝mysql 以及卸載。
1、直接使用yum -y install命令安裝mysql是無法安裝mysql的高級版本,需要先安裝帶有可用的mysql5系列社區版資源的rpm包,輸入如下命令進行安裝:
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2、 查看mysql可用版, 然后使用如下命令查看mysql的可用版本:
yum repolist enabled | grep "mysql.*-community.*"
3、然后就可以開始安裝mysql了,一般我們只需要安裝mysql-server和mysql-client就可以了:
yum -y install mysql-community-server
4、mysql安裝成功后使用命令開啟服務:
systemctl start mysql
可以使用命令讓mysq服務加入開機啟動(可選):
systemctl enable mysqld
使用命令查看mysql狀態:
systemctl status mysql
5) 創建用戶並登錄mysql,使用命令創建用戶:
mysqladmin -u root password 123456aa
6) 使用navicat連接mysql,在使用navicat連接mysql之前需要先給用戶授予遠程登錄權限,否則將無法連接mysql。在本機登錄mysql后,使用如下命令進行遠程登錄授權:
grant all privileges on *.* to 'root'@'%' identified by '123456aa' with grant option
其中root是用戶名,123456aa是密碼;上述命令是允許使用該用戶名和密碼從任何主機訪問該服務器上的mysql,然后執行如下命令:
flush privileges
systemctl restart mysql
7) 本機終端連接:
mysql -u root -p
然后輸入密碼即可:
8) 卸載
查看已安裝的mysql 命令:
rpm -qa | grep -i mysql
yum remove mysql-xxx依次卸載,直到mysql的其它依賴全部卸載掉為止;
使用命令查看mysql相關的文件目錄:
find / -name mysql
五、安裝Cloudera Manager
1、下載CM安裝文件並且進行配置
將文件下載到主節點/opt/bigdata目錄下:http://archive.cloudera.com/cm5/cm/5/
wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz
解壓:
tar -xzvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/bigdata/cloudera
在解壓路徑下出現兩個子目錄cloudera和cm-5.16.2,其中cm-5.16.2存放CM框架本身的配置、依賴庫、啟動腳本等文件。
修改文件/opt/bigdata/cloudera/cm-5.16.2/etc/cloudera-scm-agent/config.ini指向server所在的服務器地址:
vim /opt/bigdata/cloudera/cm-5.16.2/etc/cloudera-scm-agent/config.ini
下載mysql驅動包,放在/opt/bigdata/cloudera/cm-5.16.2/share/cmd/lib目錄下:
cd /opt/bigdata/cloudera/cm-5.16.2/share/cmf/lib wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
拷貝CM文件夾給其它節點:
scp -r /opt/bigdata/cloudera/ zy2:/opt/bigdata/ scp -r /opt/bigdata/cloudera/ zy3:/opt/bigdata/
在所有節點創建cloudera Manager用戶cloudera-scm:
useradd --system --home=/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm 詳解: useradd --system 表示創建的是系統用戶 --home=/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-server 指定用戶主目錄路徑 --no-create-home 不創建用戶主目錄 --shell=/bin/false 不作為一個登陸用戶 --comment "Cloudera SCM User" cloudera-scm 用戶名
驗證:# cat /etc/passwd | grep cloudera-scm。
2、下載CDH文件(主節點操作)
首先來介紹什么是CDH:
- CDH全稱Cloudera’s Distribution Including Apache Hadoop,是面向hadoop的企業級部署,是hadoop(hadoop、flume、hbase等等)發行版本之一;
- 由Cloudera公司維護,基於穩定版本的Apache Hadoop構建;
- 提供了Hadoop的核心:可擴展存儲、分布式計算;
- 基於web的用戶界面;
hadoop包含很多發行版本,如:
- Apache Hadoop;
- Cloudera’s Distribution Including Apache Hadoop(CDH);
- Hortonworks Data Platform (HDP);
- MapR;
- EMR;
在主節點輸入 mkdir /opt/cloudera/parcel-repo/ 新建文件夾,然后賦予權限:
mkdir /opt/bigdata/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/bigdata/cloudera/parcel-repo/
在所有子節點輸入 mkdir /opt/cloudera/parcels/ 新建文件夾,然后賦予權限:
mkdir /opt/bigdata/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/bigdata/cloudera/parcels/
下載CDH安裝文件http://archive.cloudera.com/cdh5/parcels/5.14.0/到CM的parcel-repo包里,就可以通過parcel包進行安裝CDH了,安裝和升級都更加的方便了。
文件名中的el7代表CentOS7版本,如果是別的版本請下載其它的版本。
- CM只能識別不高於自身版本低的CDH;
- 修改**.sha1結尾的文件名為.sha**,這才能夠被CM識別;
CDH源,去掉校驗碼文件結尾的1:
mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha
官網下載比較慢,推薦到網盤下載: https://pan.baidu.com/s/1JC-vpYH7SWBwju9C8DkVPw 密碼: 26v8.
此外,也可以卸載其它的parcel包,如kafka,也放在該路徑下:
3、主節點安裝cloudera-scm-server
正常安裝 cloudera-scm-server 時,安裝 scm 庫是通過腳本 /opt/bigdata/cloudera/cm-5.16.2/schema/scm_prepare_database.sh 來自動建庫的。進入/opt/bigdata/cloudera/cm-5.16.2/share/cmf/schema目錄下,執行以下命令:
./scm_prepare_database.sh mysql cm -h zy1 -uroot -p'123456aa' --scm-host zy1 scm scm scm
其語法格式如下:
./scm_prepare_database.sh mysql <mysql-database> -h<mysql-host> -u<mysql-user> -p<mysql-pwd> --scm-host <scm-host> <scm-user> <scm-dbname> <scm-pwd>
-
<mysql-database>,<mysql-host>,<mysql-user> <mysql-pwd> 是需要創建的 scm 庫,對應的 mysql 的主機名,用戶名和登錄密碼;
- <scm-host>,<scm_user>,<scm-dbname>,<scm-pwd>分別對應 cloudera-scm-server 部署在的主機名,scm 庫的登錄用戶,scm 庫的庫名,scm 庫的登錄密碼;
如果執行失敗,可以參考博客:安裝CDH在初始化CM數據庫的時候出現mysql數據庫連接的問題的解決方案。
看到successfully則表明初始化成功; 輸入mysql -uroot -p,進入mysql,輸入show databases:
六、CM啟動 & CDH安裝
1、主節點中進入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目錄,輸入 ./cloudera-scm-server start 啟動服務端;
./cloudera-scm-server start
如果想查看狀態:
./cloudera-scm-server status
2、在所有從節點進入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目錄,輸入 ./cloudera-scm-agent start 啟動agent:
./cloudera-scm-agent start
3、最后啟動主節點代理:
./cloudera-scm-agent start
4、打開瀏覽器,訪問主節點的7180端口,首次啟動需要多等待一些時間才能訪問到,因為cloudera manager正在初始化一些數據表(有些瀏覽器可能會無法訪問,這里我用谷歌可以訪問到這個頁面):
進入頁面后,用戶名和密碼都是 admin,點擊登陸,如下圖:
如果進不去該頁面,在主節點查看7180和7182端口是否打開:
如果端口沒有打開,查看代理和服務的狀態,並嘗試重啟。
成功登陸后,進入下圖,接受許可,點擊繼續:
選擇60天試用版本,如下圖,然后繼續:
進入下圖,點擊繼續:
點擊選項卡中的“當前管理的主機”,將所有主機都勾選,然后點擊繼續,如下圖:
進入下圖,點擊更多選項:
根據parcel實際路徑修改以下兩項;
修改為:
然后重啟代理和服務:
./cloudera-scm-server restart
./cloudera-scm-agent restart
然后稍等幾分鍾,從http://192.168.1.101:7180/cmf/express-wizard/hosts頁面開始,重新加載頁面,勾選所有主機,步驟同上;然后進入如下界面:
等待CM自動安裝配置CDH,如下圖:
安裝完成后點擊繼續,檢查主機正確性如下圖:
檢驗可能遇到以下問題:
在所有節點輸入 sysctl vm.swappiness=10 按照建議,更改交換空間;
在所有節點輸入 vi /etc/sysctl.conf ,在最后加入 vm.swappiness=10 ,使配置永久生效;
在所有節點執行echo never > /sys/kernel/mm/transparent_hugepage/defrag和echo never > /sys/kernel/mm/transparent_hugepage/enabled;
在所有節點輸入vim /etc/rc.local ,然后將上面兩條命令添加到該初始化腳本中,以便在系統重啟時予以設置;
集群設置,這里我選擇自定義,選擇自己需要的環境,我只選擇了zookeeper(安裝的越多,出錯概率更大,其它的可以后面一一安裝)如下圖,然后點擊繼續:
注意:先不要選擇kafka,這個需要激活,我們可以后面在安裝。
服務配置一般按默認就可以,如需特殊調整,自行設置,然后點擊繼續,這里默認配置如下:
接下來數據庫設置,輸入對應庫的名稱,用戶名和密碼,然后點擊測試連接,當測試通過后,點擊繼續:
由於之前我們沒有創建相應的數據庫,因此需要連接mysql、創建數據庫:
create database manager DEFAULT CHARACTER SET utf8;
create database monitor DEFAULT CHARACTER SET utf8;
接下來是集群審核頁面,這里默認就可以,點擊繼續:
點擊繼續:
安裝完成如下圖:
七、啟動Hdfs
登錄192.168.1.101:7180頁面,如下
1、部署HDFS
點擊操作,添加服務:
勾選HDFS:
如果出現類似以下的錯誤:
進入/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-agent/process目錄下,檢查Hadoop最新的部署文件:
檢查Hadoop的配置文件:
vim hadoop-env.sh
可以發現配置的JAVA_HOME默認是 /usr/lib/j2sdk1.5-sun ,而我們的JAVA_HOME路徑是/usr/java/jdk1.8.0_231/,因此需要創建一個軟鏈接,使得 /usr/lib/j2sdk1.5-sun指向/usr/java/jdk1.8.0_231/:
ln -s /usr/java/jdk1.8.0_231/ /usr/lib/j2sdk1.5-sun
這樣就可以正常安裝啟動了。
參考文章
[1]Cloudera Manager(簡稱CM)+CDH構建大數據平台(轉載)