一.CDH簡介
官網:https://www.cloudera.com/
CDH,全稱Cloudera's Distribution, including Apache Hadoop。是Hadoop眾多分支中對應中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,提供了Hadoop的核心(可擴展存儲、分布式計算),最為重要的是提供基於web的用戶界面。
優點:版本划分清晰,更新速度快,支持Kerberos安全認證,支持多種安裝方式(如Yum、rpm等)。CDH分為Cloudera Manager管理平台和CDH parcel(parcel包含各種組件的安裝包)。這里采用CM6.3.1(2019-10-11)和CDH6.3.2(2019-11-12更新)。
二.CDH三節點集群搭建環境配置准備
1.四台台機器配置及ip,
centos7.6 主節點 ip:192.168.37.101
centos7.6 從節點 ip:192.168.37.102
centos7.6 從節點 ip:192.168.37.103
單獨分一台機器部署mysql
centos7.6 主節點 ip:192.168.37.107
2.修改主機名
hostnamectl set-hostname centos001
hostnamectl set-hostname centos002
hostnamectl set-hostname centos003
hostnamectl set-hostname centos007
3.關閉selinux,firewalld
(1)不重啟的關閉 # setenforce 0 #重啟電腦后失效
(2)重啟電腦的關閉 # vi /etc/selinux/config
把SELINUX=enforce 改成disabled就可以了,#重啟電腦,永久生效
systemctl stop firewalld 關閉防火牆
systemctl disable firewalld 禁用防火牆開機自啟
4.三台主機添加hosts,好能相互解析
echo -e "192.168.37.101 centos001\n192.168.37.102 centos002\n192.168.37.103 centos003\n " >> /etc/hosts
5.NTP時間同步
NTP安裝
sudo yum -y install ntp
sudo /etc/ntp.conf
## 加入時間服務器:
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
PS: 或在https://www.pool.ntp.org/zone/asia找最適合的時間服務器
systemctl start ntpd.service 啟動NTP時間服務器
systemctl enable ntpd.service 設置NTP開機自動啟動
systemctl status ntpd.service 查看NTP是否正常運行
查看與時間同步服務器的時間偏差:ntpdc -c loopinfo
查看當前同步的時間服務器:ntpq -p
查看狀態:ntpstat
6.三台機器相互免密
ssh-keygen && ssh-copy-id -i user@B
每個節點上執行:
ssh-keygen
ssh-copy-id -i root@centos001
ssh-copy-id -i root@centos002
ssh-copy-id -i root@centos003
7.安裝JDK(所有節點)
注意:CDH的安裝 要求使用指定版本的oracle-j2sdk1.8
查詢是否有已經安裝的jdk
rpm -qa | grep java
如果之前安裝過Java組件,先將其卸載
yum remove java* -y
上傳安裝包 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 到/soft/download目錄
啟動安裝
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
查找jdk安裝路徑
find / -name java
配置環境變量
echo 'export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
驗證java -version
8.各節點安裝mysql驅動
下載jdbc依賴,上傳JDBC依賴包(所有節點)
mysql-connector-java-8.0.12.jar
創建目錄mkdir -p /usr/share/java
上傳mysql-connector-java-8.0.12.jar包
重命名 mv mysql-connector-java-8.0.12.jar mysql-connector-java.jar
三.安裝CDH三節點集群
1.主節點安裝Apache Httpd服務
安裝啟動
yum install httpd -y
systemctl start httpd
systemctl enable httpd
2.安裝mysql
可參考:https://www.cnblogs.com/pinghengxing/p/9402825.html
3.創建數據庫
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hbase DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE monitor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
4.配置Cloudera Manager安裝包yum源(master節點,此集群中為centos001,centos002和centos003要配置該源)
創建目錄(master節點)
mkdir -p /var/www/html/cloudera-repos/cm6
cdh6.3.2的下載地址:
鏈接: https://pan.baidu.com/s/16Hw38qZfLGZzLsrtHDWwhg 提取碼: w1h2 復制這段內容后打開百度網盤手機App,操作更方便哦
--來自百度網盤超級會員v2的分享
將下載好的rmp安裝包上傳到(其中CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 需去掉最后的1)
/var/www/html/cloudera-repos/cm6
創建倉庫(master節點)
cd /var/www/html/cloudera-repos/cm6
yum install -y createrepo
createrepo .
創建repo文件(所有節點)
vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://centos001/cloudera-repos/cm6
#gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera
gpgcheck=0
enabled=1
#autorefresh=0
#type=rpm-md
清理並緩存(所有節點):更新yum源
yum clean all
yum makecache
yum repolist
5.安裝 Cloudera Manager(master節點)
執行安裝
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
安裝完CM后/opt/ 下會出現cloudera目錄
6,執行CM初始化腳本
mysql數據庫與CM Server是同一台主機
執行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456
mysql數據庫與CM Server不在同一台主機上
執行命令:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h192.168.37.107 -P3306 scm root PHXwlj.19901022
7.啟動cm
systemctl start cloudera-scm-server.service
systemctl stop cloudera-scm-server.service
systemctl status cloudera-scm-server.service
systemctl enable cloudera-scm-server.service
sudo tail -100f /var/log/cloudera-scm-server/cloudera-scm-server.log
登陸
http://192.168.37.101:7180
admin/admin/
8.手動安裝cloudera-manager-agent,在兩台從機上安裝(也可以通過管理界面安裝cloudera-manager-agent)
yum install cloudera-manager-daemons cloudera-manager-agent -y
yum install cloudera-manager-agent -y
vi /etc/cloudera-scm-agent/config.ini
# 將server_host修改為CM-Server所在的主機名
server_host=centos001
systemctl start cloudera-scm-agent
systemctl status cloudera-scm-agent
systemctl stop cloudera-scm-agent
systemctl enable cloudera-scm-agent
tail -100f /var/log/cloudera-scm-agent/cloudera-scm-agent.log