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

1、Cloudera Manager介紹

Cloudera Manager(簡稱CM)是Cloudera公司開發的一款大數據集羣安裝部署利器,這款利器具備集羣自動化安裝、中心化管理、集羣監控、報警等功能,使得安裝集羣從幾天的時間縮短在幾小時之內,運維人員從數十人下降到幾人之內,極大的提升集羣管理的效率。html

開始以前其實有不少的工做要作,好比配置IP地址、關閉防火牆、配置SSH免密登陸等,這些都是比較常規的環境配置,這裏再也不贅述,不懂者能夠參考大數據 -- Hadoop集羣環境搭建中部份內容。java

附上大數據「前世此生」的一篇文章給你們,但願你們對大數據有更多的瞭解,大數據的前世此生:誕生、發展、將來?mysql

一、CM技術架構

  •  Agent:安裝在每臺主機上,負責啓動和中止的過程、拆包配置、觸發裝置和監控主機;
  • Management Service:一組執行各類監控、警報和報告功能角色的服務;
  • Database:存儲配置和監視信息,一般狀況下,多個邏輯數據庫在一個或多個數據庫服務器上運行;例如,Cloudera的管理服務器和監控角色使用不一樣的邏輯數據庫;
  • Cloudera Repository:軟件由Cloudera 管理分佈存儲庫;
  • Clients:是用於與服務器進行交互的接口;
  • Admin Console :基於Web的用戶界面與管理員管理集羣和Cloudera管理;
  • API :與開發人員建立自定義的Cloudera Manager應用程序的API;

二、CM四大功能

  • 管理:對集羣進行管理,如添加、刪除節點等操做;
  • 監控:監控集羣的健康狀況,對設備的各類指標和系統運行狀況進行全面監控;
  • 診斷:對集羣出現的問題進行診斷,對出現的問題給出建議解決方案;
  • 集成:對hadoop的多種組件進行整合;

三、分析表格

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

2、集羣時間同步

之因此要作服務器集羣的時間同步,我想你們應該不言而喻了吧,CM要求各個節點之間的時間不可以相差太多,爲的就是保證集羣的統一管理和減小沒必要要的錯誤、麻煩。還有一個緣由就是通常企業裏用到的服務器是不可以鏈接外網的,因此第一步咱們就開始作服務器集羣時間同步。

一、配置時間爲中國的時區

 CST爲中國中部標準時間,若是不是CST,將全部主機都修改成CST:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二、ntp時間同步服務器安裝

這裏須要安裝一個時間主服務器,其它節點的時間分別去同步這臺時間主服務器,這樣就能夠統一去管理時間了,ntp恰好提供了這一功能,其它的節點按照時間間隔進行不斷同步,達到時間一致的效果。

每臺服務器都須要安裝ntp,經過yum進行安裝:

yum install -y ntp

三、配置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服務

 執行如下命令後,ntp服務就會啓動成功,並開啓了自啓動:

systemctl start ntpd.service systemctl enable ntpd.service service ntpd status

三 設置SELINUX

編輯/etc/sysconfig/selinux文件,把把裏邊的一行改成SELINUX=disabled**,而後重啓就能夠了:

四 安裝mysql數據庫

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

5、安裝Cloudera Manager

一、下載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。

二、下載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,也放在該路徑下:

三、主節點安裝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:

6、CM啓動 & CDH安裝

一、主節點中進入 /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; 

接下來是集羣審覈頁面,這裏默認就能夠,點擊繼續:

點擊繼續:

安裝完成以下圖:

7、啓動Hdfs

登陸192.168.1.101:7180頁面,以下

 

一、部署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 正在下載並安裝在羣集的全部主機上 主機運行情況不良

相關文章
相關標籤/搜索