Cloudera Manager(簡稱CM)是Cloudera公司開發的一款大數據集羣安裝部署利器,這款利器具備集羣自動化安裝、中心化管理、集羣監控、報警等功能,使得安裝集羣從幾天的時間縮短在幾小時之內,運維人員從數十人下降到幾人之內,極大的提升集羣管理的效率。html
開始以前其實有不少的工做要作,好比配置IP地址、關閉防火牆、配置SSH免密登陸等,這些都是比較常規的環境配置,這裏再也不贅述,不懂者能夠參考大數據 -- Hadoop集羣環境搭建中部份內容。java
附上大數據「前世此生」的一篇文章給你們,但願你們對大數據有更多的瞭解,大數據的前世此生:誕生、發展、將來?mysql
Cloudera Manager出現背景 | 當一個開源的產品作的愈來愈好之後,就有人但願從開源產品裏面賺錢。在Hadoop開源中賺錢的標誌是Cloudera公司在2008年誕生。 |
解決什麼問題 | 大量減小集羣部署時間linux 升級和各個生態技術的兼容性強web 支持Kerberos安全認證sql 易於維護shell 修復不少hadoop的bug數據庫 基於web界面的管理集羣方式express 可以監控集羣的運行狀態並告警vim |
劣勢 | 系統以來高 自定製源代碼難度高 帶有付費產品功能 設計到產生鎖定的問題 |
四、本教程使用虛擬機配置
根據本身的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要求各個節點之間的時間不可以相差太多,爲的就是保證集羣的統一管理和減小沒必要要的錯誤、麻煩。還有一個緣由就是通常企業裏用到的服務器是不可以鏈接外網的,因此第一步咱們就開始作服務器集羣時間同步。
CST爲中國中部標準時間,若是不是CST,將全部主機都修改成CST:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
這裏須要安裝一個時間主服務器,其它節點的時間分別去同步這臺時間主服務器,這樣就能夠統一去管理時間了,ntp恰好提供了這一功能,其它的節點按照時間間隔進行不斷同步,達到時間一致的效果。
每臺服務器都須要安裝ntp,經過yum進行安裝:
yum install -y 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:
執行如下命令後,ntp服務就會啓動成功,並開啓了自啓動:
systemctl start ntpd.service systemctl enable ntpd.service service ntpd status
編輯/etc/sysconfig/selinux文件,把把裏邊的一行改成SELINUX=disabled**,而後重啓就能夠了:
mysql數據安裝在哪均可以,只要可以訪問到這個數據庫就能夠,這裏將數據庫安裝在zy1節點上,具體能夠參考博客:Linux下yum方式安裝mysql 以及卸載。
一、直接使用yum -y install命令安裝mysql是沒法安裝mysql的高級版本,須要先安裝帶有可用的mysql5系列社區版資源的rpm包,輸入以下命令進行安裝:
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
二、 查看mysql可用版, 而後使用以下命令查看mysql的可用版本:
yum repolist enabled | grep "mysql.*-community.*"
三、而後就能夠開始安裝mysql了,通常咱們只須要安裝mysql-server和mysql-client就能夠了:
yum -y install mysql-community-server
四、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
將文件下載到主節點/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。
二、下載CDH文件(主節點操做)首先來介紹什麼是CDH:
hadoop包含不少發行版本,如:
在主節點輸入 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版本,若是是別的版本請下載其它的版本。
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,也放在該路徑下:
正常安裝 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 的主機名,用戶名和登陸密碼;
若是執行失敗,能夠參考博客:安裝CDH在初始化CM數據庫的時候出現mysql數據庫鏈接的問題的解決方案。
看到successfully則代表初始化成功; 輸入mysql -uroot -p,進入mysql,輸入show databases:
一、主節點中進入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目錄,輸入 ./cloudera-scm-server start 啓動服務端;
./cloudera-scm-server start
若是想查看狀態:
./cloudera-scm-server status
二、在全部從節點進入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目錄,輸入 ./cloudera-scm-agent start 啓動agent:
./cloudera-scm-agent start
三、最後啓動主節點代理:
./cloudera-scm-agent start
四、打開瀏覽器,訪問主節點的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;
接下來是集羣審覈頁面,這裏默認就能夠,點擊繼續:
點擊繼續:
安裝完成以下圖:
登陸192.168.1.101:7180頁面,以下
點擊操做,添加服務:
勾選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構建大數據平臺(轉載)