一.准備⼯工作
1.離線部署主要分為三塊:
a.MySQL離線部署
b.CM離線部署
c.Parcel⽂文件離線源部署
2.規划

3.下載源:
CM:
Parcel
- CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
- CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1
- manifest.json
JDK
- https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
- 下載jdk-8u202-linux-x64.tar.gz
- 准備好百度雲,下載安裝包:
- 鏈接:https://pan.baidu.com/s/10s-NaFLfztKuWImZTiBMjA 密碼:viqp
在mysql的部署之前考慮到airflow支持不超過5.6的版本,所以就選擇了5.6版本,你們具體用啥可以自行決定
下載:
- mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
- MySQL jdbc jar mysql-connector-java-5.1.47.jar
具體可參考博客:https://www.cnblogs.com/xuziyu/p/10353968.html
二.集群節點初始化
1.當前筆記本或台式機配置hosts⽂文件
2.設置所有節點的hosts⽂文件
- 節點上的hosts配置的網址一定是內網的
3.關閉所有節點的防⽕火牆及清空規則
systemctl stop firewalld systemctl disable firewalld iptables -F
4.關閉所有節點的selinux
vi /etc/selinux/config 將SELINUX=enforcing改為SELINUX=disabled 設置后需要重啟才能⽣生效
5.設置所有節點的時區⼀致及時鍾同步
6.1.時區
[root@test-hadoop01 ~]# date Wed Oct 30 16:54:21 CST 2019
在所有的節點執行此命令看Time zone是否都是 Asia/Shanghai ,如果是就OK如果不是需要設置為 Asia/Shanghai
#否則所有節點設置亞洲上海時區 均執行以下命令,以此來設置Asia/Shanghai時區
timedatectl set-timezone Asia/Shanghai
所有節點同步時間
方式:在每天凌晨所有機器與test-hadoop01同步一次設置如下
所有機器執行命令
crontab -e
添加腳本
00 00 * * * /usr/sbin/ntpdate test-hadoop01
然后所有節點執行
/usr/sbin/ntpdate test-hadoop01
7.部署集群的JDK
mkdir /usr/java tar -xzvf jdk-8u45-linux-x64.tar.gz -C /usr/java/ #切記必須修正所屬⽤用戶及⽤用戶組 chown -R root:root /usr/java/jdk1.8.0_45 echo "export JAVA_HOME=/usr/java/jdk1.8.0_45" >> /etc/profile echo "export PATH=${JAVA_HOME}/bin:${PATH}" >> /etc/profile source /etc/profile which java
注意:如果你的機器上本來就有java的環境看一下他是在什么目錄之下
如果家目錄是 JAVA_HOME=/usr/java/jdk1.8.0_45這種形式的,那么沒有什么需要修改的,如果你的java的家目錄不是這樣的,那么你要注意了
比如我這次部署的過程中我的家目錄就是/usr/local/java,但是我抱着僥幸心理並沒有去修改他,然后后邊部署spark的時候果然出了問題
所以在你的Java的家目錄不是/usr/java/jdk1.8.0_45這種形式的時候,一定要做一個軟連接到/usr/java/default 目錄下
敲黑板划重點 血與淚的教訓
8.test-hadoop01節點離線部署MySQL5.6
具體可參考博客:https://www.cnblogs.com/xuziyu/p/10353968.html
9.創建CDH的元數據庫和⽤用戶、amon服務的數據庫及⽤用戶
create database cmf DEFAULT CHARACTER SET utf8; create database amon DEFAULT CHARACTER SET utf8; grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456'; grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456'; flush privileges;
10.test-hadoop01節點部署mysql jdbc jar
mkdir -p /usr/share/java/
cp mysql-connector-java.jar /usr/share/java/
三.CDH部署
1.離線部署cm server及agent
1.1.所有節點創建⽬目錄及解壓
mkdir /opt/cloudera-manager tar -zxvf cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager/
1.2.所有節點修改agent的配置,指向server的節點test-hadoop01
sed -i "s/server_host=localhost/server_host=test-hadoop01/g" /opt/cloudera-manager/cm5.16.1/etc/cloudera-scm-agent/config.ini
1.3.主節點修改server的配置:
vi /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.type=mysql com.cloudera.cmf.db.host=test-hadoop01 com.cloudera.cmf.db.name=cmf com.cloudera.cmf.db.user=cmf com.cloudera.cmf.db.password=123456 com.cloudera.cmf.db.setupType=EXTERNAL
1.4.所有節點創建⽤用戶
useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server/ -no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
1.5.⽬目錄修改⽤用戶及⽤用戶組
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
2.test-hadoop01節點部署離線parcel源
2.1.部署離線parcel源
$ mkdir -p /opt/cloudera/parcel-repo $ cp CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/
#切記cp時,重命名去掉1,不不然在部署過程CM認為如上⽂文件下載未完整,會持續下載
$ cp CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.1 6.1-1.cdh5.16.1.p0.3-el7.parcel.sha $ cp manifest.json /opt/cloudera/parcel-repo/
$cd /opt/cloudera/parcel-repo
[root@test-hadoop01 parcel-repo]# ll total 3081664 -rw-r--r-- 1 root root 2127506677 May 9 18:04 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel -rw-r--r-- 1 root root 41 May 9 18:03 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 -rw-r--r-- 1 root root 841524318 May 9 18:03 cloudera-manager-centos7-cm5.16.1_x 86_64.tar.gz -rw-r--r-- 1 root root 185515842 Aug 10 2017 jdk-8u144-linux-x64.tar.gz -rw-r--r-- 1 root root 66538 May 9 18:03 manifest.json -rw-r--r-- 1 root root 989495 May 25 2017 mysql-connector-java.jar
2.2.⽬目錄修改⽤用戶及⽤用戶組
$ chown -R cloudera-scm:cloudera-scm /opt/cloudera/
3.所有節點創建軟件安裝⽬目錄、⽤用戶及⽤用戶組權限
mkdir -p /opt/cloudera/parcels chown -R cloudera-scm:cloudera-scm /opt/cloudera/
4.test-hadoop01節點啟動Server
4.1.啟動server
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start
4.2.要確保test-hadoop01節點防⽕火牆放開7180端⼝
4.3.等待1min,打開 http://hadoop001:7180 賬號密碼:admin/admin
4.4.假如打不不開,去看server的log,根據錯誤仔細排查錯誤
5.所有節點啟動Agent
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start
6.接下來,全部Web界⾯面操作
http://hadoop001:7180/ 賬號密碼:admin/admin
7.歡迎使⽤用Cloudera Manager--最終⽤用戶許可條款與條件。勾選

8.歡迎使⽤用Cloudera Manager--您想要部署哪個版本?選擇Cloudera Express免費 版本

9.感謝您選擇Cloudera Manager和CDH

10.為CDH集群安裝指導主機。選擇[當前管理理的主機],全部勾選

11.選擇存儲庫

12.集群安裝--正在安裝選定Parcel
- 假如本地parcel離線源配置正確,則"下載"階段瞬間完成,其余階段視節點數與內部⽹網絡情況決定。

13.檢查主機正確性

14.⾃自定義服務,選擇部署Zookeeper、HDFS、Yarn服務

15.⾃自定義⻆角⾊色分配(具體如何分配,可自行決定)

16.數據庫設置

17.審改設置,默認即可

18.⾸首次運⾏

19.恭喜您!

到這里簡單的CDH集群就搭建成功了!!!
搭建路上可能會遇到各種各樣的問題,但是大坑我應經幫助各位避免了,剩下的靠你自己了!加油啊!
