大數據 -- Cloudera Manager(簡稱CM)+CDH構建大數據平台


一、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構建大數據平台(轉載)

[2]Linux配置ntp時間服務器(全)

[3]Centos7離線安裝Cloudera Manager 5.14.1

[4]CDH集群手動導入scm庫

[5]CenOS7下CM&CDH大數據平台搭建

[6]CDH安裝:選定的 Parcel 正在下載並安裝在群集的所有主機上 主機運行狀況不良


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM