大數據平台CentOS7+CDH5.12.1集群搭建


1.CM(Cloudera Manager)介紹

1.1 簡介

Cloudera Manager是一個擁有集群自動化安裝、中心化管理、集群監控、報警功能的一個工具,使得安裝集群從幾天的時間縮短在幾個小時內,運維人員從數十人降低到幾人以內,極大的提高集群管理的效率。

對比Apache / CDH / HDP:

(1)Apache:運維麻煩,組件間兼容性需要自己調研。(一般大廠使用,技術實力雄厚,有專業的運維人員)
(2)CDH:國內使用最多的版本,但CM不開源,但其實對中、小公司使用來說沒有影響(建議使用)
(3)HDP:開源,可以進行二次開發,但是沒有CDH穩定,國內使用較少

1.2 CM架構

1)Cloudera Repository:軟件由Cloudera管理分布存儲庫。(有點類似Maven的中心倉庫)
2)Server:負責軟件安裝、配置,啟動和停止服務,管理服務運行的群集。
3)Management Service:由一組執行各種監控,警報和報告功能角色的服務。
4)Database:存儲配置和監視信息。
5)Agent:安裝在每台主機上。負責啟動和停止的過程,配置,監控主機。
6)Clients:是用於與服務器進行交互的接口(API和Admin Console)

2.環境准備

2.1 集群規划

項目中采用3台虛擬機作為測試集群進行部署:hadoop101、hadoop102、hadoop103(對應內存分別是:16G、4G、4G)

集群規划參考:https://blog.51cto.com/12445535/2366197?tdsourcetag=s_pcqq_aiomsg

2.2 虛擬機准備

操作系統:CentOS 7

1)VM Ware安裝CentOS 7

2)安裝JDK:1.8(所有節點)

CentOS自帶OpenJdk,不過運行CDH5需要使用Oracle的JDK

使用集群同步腳本對配置文件同步分發

3)克隆三台虛擬機,設置hostname、hosts、靜態IP、關閉防火牆(所有節點)

設置hadoop101、hadoop102、hadoop103的主機對應內存分別是:16G、4G、4G

4)配置三台虛擬機SSH免密登陸

5)關閉所有節點的SELINUX

6)在hadoop101節點安裝MySQL5.6(主節點)

7)搭建ntp服務器及客戶端進行時間同步

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下載地址

本文所采用為CentOS7CDH5.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)分別在hadoop101、hadoop102、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)啟動工作節點:hadoop101、hadoop102、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)關閉工作節點:hadoop101、hadoop102、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)安裝完成!

 

 


免責聲明!

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



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