一、CDH6要求和支持的版本
二、環(huán)境準(zhǔn)備
1.硬件
本次搭建使用ZStack對(duì)服務(wù)器進(jìn)行虛擬化,共虛擬化5個(gè)節(jié)點(diǎn),使用Linux發(fā)行版本為CentOS7.8。
| IP地址 | HostName | CPU | Memory | Disk |
|---|---|---|---|---|
| 192.168.10.31 | jht-cdh-1 | 40 | 100GB | 700GB |
| 192.168.11.20 | jht-cdh-2 | 40 | 60GB | 1600GB |
| 192.169.11.21 | jht-cdh-3 | 40 | 60GB | 1600GB |
| 192.168.11.26 | jht-cdh-4 | 40 | 60GB | 1600GB |
| 192.168.11.27 | jht-cdh-5 | 50 | 60GB | 1600GB |
2.軟件包下載
由于目前Cloudera公司不允許下載免費(fèi)的安裝包,故將軟件打包在網(wǎng)盤中,自取路徑:
鏈接:https://pan.baidu.com/s/11g_Ub9coen94koYzHbBCig
提取碼:q01v
三、安裝前環(huán)境修改
1.關(guān)閉防火墻
每個(gè)節(jié)點(diǎn)都要執(zhí)行
1.查看防火墻狀態(tài)
systemctl status firewalld.service
2.臨時(shí)關(guān)閉防火墻
systemctl stop firewalld.service
3.設(shè)置防火墻開機(jī)不啟動(dòng)
systemctl disable firewalld.service
2.關(guān)閉selinux
2.1什么是selinux
安全增強(qiáng)式Linux(SELinux, Security-Enhanced Linux)是一種強(qiáng)制訪問控制(mandatory access control)的實(shí)現(xiàn)。它的作法是以最小權(quán)限原則(principle of least privilege)為基礎(chǔ),在Linux核心中使用Linux安全模塊(Linux Security Modules)
1.查看eslinux狀態(tài)
getenforce 0
返回狀態(tài)為:Enforcing,為啟動(dòng)狀態(tài);Permissive,為未運(yùn)行狀態(tài);
2.臨時(shí)關(guān)閉eslinux
setenforce 0
3.永久關(guān)閉selinux
vim /etc/selinux/config
將SELINUX=enforcing修改為SELINUX=disable
3.修改hostname
1.查看hostname
hostname
2.修改hostname
vim /etc/hostname
將原h(huán)ostname修改為想要修改的hostname
4.配置hosts文件
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
添加
192.168.10.31 jht-cdh-1
192.168.11.21 jht-cdh-2
192.168.11.22 jht-cdh-3
192.168.11.26 jht-cdh-4
192.168.11.27 jht-cdh-5
5.配置免密碼登陸
1.進(jìn)入root目錄
cd /root
2.生成公鑰與私鑰
ssh-keygen -t rsa
連續(xù)點(diǎn)三次回車
在/root/.ssh目錄下生成兩個(gè)文件id_rsa、id_rsa.pub(公鑰、私鑰)
每個(gè)節(jié)點(diǎn)都要生成!??!
3.將每臺(tái)的公鑰發(fā)送至第一臺(tái)服務(wù)器
在其他服務(wù)器上執(zhí)行:ssh-copy-id jht-cdh-1
需要輸密碼
此過程是將每臺(tái)服務(wù)器的公鑰復(fù)制在第一臺(tái)服務(wù)器/root/.ssh/authorized_keys文件中
4.復(fù)制第一臺(tái)服務(wù)器的認(rèn)證到其他服務(wù)器
scp /root/.ssh/authorized_keys jht-cdh-2:/root/.ssh
scp /root/.ssh/authorized_keys jht-cdh-3:/root/.ssh
scp /root/.ssh/authorized_keys jht-cdh-4:/root/.ssh
scp /root/.ssh/authorized_keys jht-cdh-5:/root/.ssh
6.設(shè)置時(shí)鐘同步
由于為離線安裝,無法與外部時(shí)鐘同步服務(wù)器進(jìn)行同步,需要在集群內(nèi)部設(shè)置一個(gè)時(shí)鐘同步服務(wù)器,讓其他服務(wù)器與此服務(wù)器進(jìn)行時(shí)間同步,可以保證在集群內(nèi)部的所有節(jié)點(diǎn)時(shí)間的一致的。
1.查看是否安裝ntp服務(wù)(所有服務(wù)器都要進(jìn)行驗(yàn)證)
rpm -aq | grep ntp
ntpdate-4.2.6p5-29.el7.centos.x86_64
本臺(tái)服務(wù)器已安裝ntp服務(wù),不需要進(jìn)行安裝
若沒有安裝可以通過yum或rpm的方式進(jìn)行安裝
2.配置時(shí)鐘同步主服務(wù)器
vim /etc/ntp.conf
在配置文件中修改內(nèi)容為
restrict 192.168.10.31 mask 255.255.255.0 nomodify notrap
(這里的IP為本機(jī)IP)
server 127.127.1.0
Fudge 127.127.1.0 stratum 8
修改后配置文件為:

3.啟動(dòng)ntp服務(wù)
systemctl start ntpd.service
4.設(shè)置ntp服務(wù)開機(jī)啟動(dòng)
systemctl enable ntpd.service
時(shí)鐘同步主服務(wù)器設(shè)置完畢,下來配置其他客戶服務(wù)器
5.配置客戶服務(wù)器
vim /etc/ntp.conf
修改內(nèi)容:
server 192.168.10.31(這里的ip為時(shí)鐘同步主服務(wù)器IP)
Fudge 192.168.10.31 stratum 8
修改后配置文件內(nèi)容為:

6.啟動(dòng)配置服務(wù)器ntp
systemctl start ntpd.service
7.查看配置是否生效
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*jht-cdh-1 LOCAL(0) 6 u 40 64 377 0.312 -7.667 5.602
7.設(shè)置開機(jī)自啟
systemctl enable ntpd.service
7.主節(jié)點(diǎn)部署mysql
1.將系統(tǒng)原裝的mysql徹底刪除
1.1.停止mysql服務(wù)
systemctl stop mysqld
1.2.查看安裝mysql情況
rpm -qa | grep -i mysql
qt3-MySQL-3.3.8b-51.el7.x86_64
qt5-qtbase-mysql-5.9.7-2.el7.x86_64
qt-mysql-4.8.7-8.el7.x86_64
1.3.刪除軟件
rpm -e 包名
1.4.查看與mysql相關(guān)路徑
find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/pcp/config/pmlogconf/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/include/mysql
1.5.刪除相關(guān)路徑
rm -rf 路徑
系統(tǒng)默認(rèn)安裝mysql已經(jīng)全部刪除掉
2.下載配置mysql的rpm安裝包
2.1創(chuàng)建一個(gè)關(guān)于mysql rpm的目錄(隨便創(chuàng)建,知道創(chuàng)建路徑就行)
mkdir -p /opt/mysql/rpm
cd /opt/mysql/rpm
2.2.下載rpm包
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
2.3.安裝mysql源
yum localinstall -y mysql80-community-release-el7-3.noarch.rpm
2.4.檢查mysql源
yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 203
mysql-tools-community/x86_64 MySQL Tools Community 129
mysql80-community/x86_64 MySQL 8.0 Community Server 265
現(xiàn)在能看出mysql為8.0版本的,需要修改yum的配置文件,安裝5.7版本的
2.5.修改yum中關(guān)于mysql的配置文件
vim /etc/yum.repo.d/mysql-community.repo
將[mysql80-community]下的
enabled=1改為0
將[mysql57-community]下的
enabled=0改為1
修改完后:

2.6.再檢查yum倉庫
yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 203
mysql-tools-community/x86_64 MySQL Tools Community 129
mysql57-community/x86_64 MySQL 5.7 Community Server 504
3.安裝mysql
yum -y install mysql-community-server
4.啟動(dòng)mysql
systemctl start mysqld.service
設(shè)置開機(jī)啟動(dòng)
systemctl enable mysqld
查看mysql狀態(tài)
systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2021-06-09 11:31:26 CST; 1h 49min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 20044 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 20021 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 20047 (mysqld)
Tasks: 28
CGroup: /system.slice/mysqld.service
└─20047 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
6月 09 11:31:25 jht-cdh-1 systemd[1]: Starting MySQL Server...
6月 09 11:31:26 jht-cdh-1 systemd[1]: Started MySQL Server.
可以看出mysql已經(jīng)安裝完成
5.修改mysql中root登陸密碼
5.1.在/var/log/mysqld.log中查看默認(rèn)密碼
grep 'temporary password' /var/log/mysqld.log
2021-06-09T03:25:18.238900Z 1 [Note] A temporary password is generated for root@localhost: (Z<1diT>V2dk
密碼為:(Z<1diT>V2dk
5.2.修改登錄密碼
mysql -u -p
輸入密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '(要改的密碼)';
6.修改mysql配置文件
vim /etc/my.cnf
添加內(nèi)容
validate_password=off
character_set_server=utf8
init_connect='SET NAMES utf8'
重啟mysql,將配置進(jìn)行生效
systemctl restart mysqld
此配置內(nèi)容不修改,創(chuàng)建CDH相關(guān)庫時(shí)會(huì)出現(xiàn)問題
7.允許root用戶遠(yuǎn)程登錄
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '(密碼)' WITH GRANT OPTION;
FLUSH PRIVILEGES;
8.創(chuàng)建CDH相關(guān)mysql庫
CREATE DATABASE scm DEFAULT CHARACTER SET utf8;
CREATE USER 'scm'@'%'IDENTIFIED BY 'scm';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
GRANT ALL PRIVILEGES ON *.* TO 'scm'@'%' IDENTIFIED BY 'scm' WITH GRANT OPTION;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8;
CREATE USER 'amon'@'%'IDENTIFIED BY 'amon';
GRANT ALL PRIVILEGES ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
GRANT ALL PRIVILEGES ON *.* TO 'amon'@'%' IDENTIFIED BY 'amon' WITH GRANT OPTION;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8;
CREATE USER 'hive'@'%'IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8;
CREATE USER 'hue'@'%'IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%' IDENTIFIED BY 'hue' WITH GRANT OPTION;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;
CREATE USER 'oozie'@'%'IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%' IDENTIFIED BY 'oozie' WITH GRANT OPTION;
FLUSH PRIVILEGES;
8.創(chuàng)建本地YUM倉庫
將網(wǎng)盤下載的兩個(gè)文件夾上傳至主服務(wù)器/var/www/html路徑下
8.1.安裝httpd服務(wù)
yum install -y httpd
8.2.啟動(dòng)httpd服務(wù)
systemctl start httpd
8.3.設(shè)置httpd服務(wù)為開機(jī)啟動(dòng)
systemctl enable httpd
8.4.在cm6.3.1目錄下生成repodata目錄
cd /var/www/html/cm6.3.1
createrepo .
8.5.將cdh6.3.2下一個(gè)文件改名
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel.sha256 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel.sha
生成關(guān)于cm的yum配置文件
8.6.在/etc/yum.repo.d/下編輯文件
vim cm.repo
增加內(nèi)容為
[cmrepo]
name=cm_repo
baseurl=http://jht-cdh-1/cm6.3.1
enabled=true
gpgcheck=false
8.7.分發(fā)至其他節(jié)點(diǎn)
scp /etc /yum.repo .d/cm.repo jht-cdh-2:/etc/yum.repo.d
scp /etc /yum.repo .d/cm.repo jht-cdh-3:/etc/yum.repo.d
scp /etc /yum.repo .d/cm.repo jht-cdh-4:/etc/yum.repo.d
scp /etc /yum.repo .d/cm.repo jht-cdh-5:/etc/yum.repo.d
8.8.在所有服務(wù)器都執(zhí)行
yum repolist
8.9.修改主節(jié)點(diǎn)httpd服務(wù)配置文件
vim /etc/httpd/conf/httpd.conf
將AddType application/x-gzip .gz .tgz增加配置.parcel
8.10.修改完成重啟httpd
systemctl restart httpd
在web頁面訪問地址
http://jht-cdh-1/cm6.3.1/
http://jht-cdh-1/cdh6.3.2/
9.所有服務(wù)器安裝JDK
9.1.通過yum安裝官方提供jdk
yum install -y oracle-j2sdk1.8-1.8.0+update181-1.x86_64
9.2.配置jdk環(huán)境
vim /etc /profile
增加內(nèi)容
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=:$JAVA_HOME/bin:$PATH
9.3.讓配置生效
source /etc/profile
9.4.添加mysql驅(qū)動(dòng)包
將mysql-connector-java-5.1.46.jar上傳至/opt下
mv /opt/mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar
四、部署Cloudera Manager
1.對(duì)所有節(jié)點(diǎn)安裝daemons、agent
yum install -y cantos-release-scl
yum install -y python27 python27-devel
yum install -y cloudera-manager-daemons
yum install -y Cloudera-manager-agent
2.修改所有節(jié)點(diǎn)agent配置
vim /etc/cloudera-scm-agent/config.ini
修改server_host值
server_host=jht-cdh-1
3.在主節(jié)點(diǎn)安裝cloudera-manager-server及scm數(shù)據(jù)庫初始化
3.1.安裝server服務(wù)
yum install -y cloudera-manager-server
3.2.初始化scm數(shù)據(jù)庫
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm
4.啟動(dòng)cloudera-manager-server及所有cloudera-manager-agent
4.1.在主節(jié)點(diǎn)啟動(dòng)
systemctl start cloudera-scm-server
4.2.所有節(jié)點(diǎn)啟動(dòng)
systemctl start cloudera-scm-agent
第一次啟動(dòng)時(shí)間較長(zhǎng),等待一會(huì)
進(jìn)入web界面http://jht-cdh-1:7180
默認(rèn)登錄賬號(hào):admin
默認(rèn)登錄密碼:admin
若一直web界面進(jìn)不去,查看日志
tail -100 /var/log/cloudera-scm-server/cloudera-scm-server.log
五、集群搭建
進(jìn)入http://jht-cdh-1:7180
輸入默認(rèn)賬號(hào)密碼

繼續(xù)

接受
繼續(xù)

選擇Cloudera Enterprise Cloudera Enterprise 試用版(白嫖60天)
繼續(xù)

繼續(xù)

修改集群名稱
繼續(xù)

可以進(jìn)行新主機(jī)的查找,在下面輸入主機(jī)的IP或一個(gè)IP段

我這里已經(jīng)安裝好agent服務(wù),直接選擇當(dāng)前管理主機(jī)
繼續(xù)

這里選擇更多選項(xiàng)
新添加自己的cdh的yum源

保存更改

這里監(jiān)測(cè)到可用的cdh包
繼續(xù)

從yum源下載分配Parcels
繼續(xù)

檢查主機(jī)
發(fā)現(xiàn)有兩個(gè)問題,一個(gè)是swap分區(qū),一個(gè)是啟用透明大頁面壓縮,根據(jù)給的提示進(jìn)行修改
修改swap分區(qū)
1.臨時(shí)修改
sysctl vm.swappiness=10
2.永久修改
vim /etc/sysctl.conf
添加
vm. swappiness=10
修改啟用透明大頁面壓縮
1.臨時(shí)修改
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.永久修改
vim /etc /rc.local
添加
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
保存退出
chmod +x /etc/rc.local
重新運(yùn)行,檢查主機(jī)

沒有問題
繼續(xù)

繼續(xù)
添加Cloudera Management Service服務(wù)

六.添加服務(wù)
這里以安裝zookeeper為例進(jìn)行安裝,安裝服務(wù)大同小異

添加服務(wù)

安裝zookeeper

選擇了3個(gè)節(jié)點(diǎn)進(jìn)行安裝,zookeeper需為基數(shù)個(gè)節(jié)點(diǎn)
繼續(xù)

默認(rèn),繼續(xù)

開始安裝

繼續(xù)

完成
至此,CDH集群已經(jīng)搭建完成,后續(xù)根據(jù)工作的需要進(jìn)行大數(shù)據(jù)服務(wù)的安裝。