CDH叢集離線部署(CDH6.3.1 + CDH6.3.2 + CentOS7)
1.1原生Hadoop的問題
- 版本管理過於混亂
- 部署過程較為繁瑣,升級難度較大
- 相容性差
- 安全性低
1.2CDH和CM(ClouderaManager)
- CDH(Cloudera’s Distribution Including Apache Hadoop),是Hadoop眾多分中的一種,由Cloudera公司維護,基於穩定版本的ApacheHadoop構建,並集成了很多補丁,可以直接用於生產環境。就是Hadoop等大資料安裝包的第三方版本的集合,提供了Hadoop等大資料服務的安裝包。
- CM(ClouderaManager)提供了一個管理和監控Hadoop等大資料服務的web介面,能讓我們方便安裝大資料生態圈的大部分服務。
1.3Hadoop自動化部署和管理平臺
主流的有ApacheAmbari和ClouderaManager,相對應的Hadoop的發行版為HDP和CDH。這種自動化部署平臺的功能一般如下:
- 提供Hadoop大資料叢集
- 管理Hadoop大資料叢集
- 監控Hadoop大資料叢集
PS:HDP的公司(hortonworks)已經被CDH公司(Cloudera)收購了
1.4Cloudera Manager架構
- Server:負責軟體安裝、配置,啟動和停止服務,管理服務執行的群集。核心
- Agent:安裝在每臺主機上。負責啟動和停止程序,配置,監控主機。
- Management Service:由一組執行各種監控,警報和報告功能角色的服務。
- Database:儲存配置和監視資訊。
- Cloudera Repository:軟體由Cloudera 管理分佈儲存庫。(有點類似Maven的中心倉庫);線上安裝(從中心倉庫拉取)和離線安裝(離線庫)
- Clients:是用於與伺服器進行互動的介面(API和Admin Console)
1.5CDH下載
官方下載地址:https://archive.cloudera.com
- CM下載
https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/
- CDH下載
https://archive.cloudera.com/cdh6/6.3.2/parcels/
注意:CDH的版本一定要和CM的版本對應
2.環境準備
使用VMware模擬多臺主機,由於主機條件有限,只演示三臺機器,配置如下:
主機名 | 系統 | IP | 記憶體 | 磁碟 |
cdh-1 | Centos7 | 192.168.100.10 | 4G | 60G |
cdh-2 | Centos7 | 192.168.100.20 | 2G | 60G |
cdh-3 | Centos7 | 192.168.100.30 | 2G | 60G |
2.1修改主機名(所有節點)
hostnamectl set-hostname cdh-1 hostnamectl set-hostname cdh-2 hostnamectl set-hostname cdh-3 |
2.2關閉防火牆(所有節點)
systemctl stopfirewalld systemctl disable firewalld |
2.3關閉SELinux(所有節點)
setenforce 0 #臨時關閉 #永久關閉 將SELINUX= enforcing 修改為SELINUX=disabled vi /etc/selinux/config SELINUX=disabled |
PS: 可以使用sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
2.4配置IP到主機的對映(所有節點)
vi/etc/hosts 192.168.100.10 cdh-1 192.168.100.20 cdh-2 192.168.100.30 cdh-3 |
2.5配置免密碼登入(cdh-1)
#生成公鑰和私鑰 三次回車 ssh-keygen #複製公鑰和私鑰 ssh-copy-id cdh-1 ssh-copy-id cdh-2 ssh-copy-id cdh-3 |
2.6設定使用者最大可開啟檔案數,程序數,記憶體佔用(所有節點)
vi /etc/security/limits.conf |
* soft nofile 32728 * hard nofile 1024999 * soft nproc 65535 * hard noroc unlimited * soft memlock unlimited * hard memlock unlimited |
sysctl -p |
2.7設定swap空間(所有節點)
echo "vm.swappiness = 0" >> /etc/sysctl.conf |
Cloudera建議將交換空間設定為0,過多的交換空間會引起GC耗時的激增。
2.8關閉大頁面壓縮(所有節點)
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag |
3.安裝
將下載好的CDH包和CM的包使用sftp上傳到cdh-1
3.1配置本地yum
CDH的安裝包都是rpm包如果使用rpm安裝方式安裝起來是比較複雜的,會有很多依賴問題需要解決,就需要使用yum幫助我們解決依賴問題。
1.配置centos源(cdh-1)
#掛載centos7映象 mount /dev/cdrom /mnt/ #刪除系統自帶的源 rm -rf /etc/yum.repos.d/* #新建一個本地yum源 cat >> /etc/yum.repos.d/local.repo << EOF [centos] name=centos baseurl=file:///mnt gpgcheck=0 EOF #驗證 yum repolist |
2.安裝httpd服務(cdh-1)
#安裝 yuminstall -y httpd #啟動 systemctl start httpd #開機自啟 systemctl enable httpd |
http服務可以幫助我們傳輸檔案,預設靜態資源的目錄為/var/www/html
3.centos源配置為http方式獲取(cdh-1)
#在http服務的靜態資源目錄建立centos目錄 mkdir /var/www/html/centos #將centos的映象檔案複製到centos目錄 cp -rvf /mnt/* /var/www/html/centos/ #可以通過http訪問了 |
#修改cdh-1的本地centos源的配置 vi /etc/yum.repo.d/local.repo baseurl=http://cdh-1/centos #取消掛載 umount /dev/cdrom /mnt |
其他節點配置(cdh-1,cdh-2)
cat >> /etc/yum.repos.d/local.repo << EOF [centos] name=centos baseurl=http://cdh-1/centos gpgcheck=0 EOF #驗證 yum repolist |
4.配置CM源
- 移動檔案安裝包檔案到http伺服器靜態檔案目錄(cdh-1)
#在/var/www/html建立存放cm包的資料夾和cdh安裝包的資料夾 mkdir /var/www/html/{cm,cdh} #將cdh的安裝包和cm的包移動到建立的目錄 #移動cm安裝包 mv cloudera-manager-* /var/www/html/cm/ mv enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm /var/www/html/cm #移動cdh安裝包和元資料檔案 mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel manifest.json /var/www/html/cdh/ |
- 製作CM源生成repodata檔案,需要用到createrepo這個包(cdh-1)
#安裝 yum install -y createrepo #進入到cm的rpm包存放目錄 cd /var/www/html/cm #生成repodata資料夾 createrepo . |
- 配置yum源(所有節點)
cat >> /etc/yum.repos.d/cm.repo << EOF [CM] name=cm baseurl=http://cdh-1/cm/ gpgcheck=0 EOF |
3.2安裝
1.安裝依賴(所有節點)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse |
2.安裝ClouderaManager和ClouderaAgent(cdh-1)
#安裝JDK yum install -y oracle-j2sdk1.8.x86_64 #安裝cloudera-manager yum install -y cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2 postgresq-server |
3.安裝Mariadb
#安裝 yum install -y mariadb-server #啟動和開機自啟 systemctl start mariadb && systemctl enable mariadb #配置Mariadb資料庫 mysql_secure_installation |
4.初始化管理節點(cdh-1)
- 複製mysql的jdbc驅動包到/usr/share/java目錄
需要使用sftp上傳jar包到cdh-1節點上
#建立/usr/share/java目錄 mkdir -p /usr/share/java #複製jar包到/usr/share/java下 cp mysql-connector-java-5.1.48.jar /usr/share/java/ #注意:需要改名為mysql-connector-java.jar mv /usr/share/java/mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar |
- 初始化資料庫
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm root root |
5.安裝agent節點
只需要在chd-2和cdh-3節點上安裝
#安裝jdk yum install -y oracle-j2sdk1.8.x86_64 #安裝agent yum install cloudera-manager-daemons cloudera-manager-agent -y |
6.修改配置檔案(所有節點)
修改ClouderaAgent配置檔案/etc/cloudera-scm-agent/config.ini,配置server_host為主節點cdh-1
#通過vi命令修改 vi /etc/cloudera-scm-agent/config.ini server_host=cdh-1 #也可以通過sed命令修改 sed -i "s/server_host=localhost/server_host=cdh-1/g" /etc/cloudera-scm-agent/config.ini 注意:只用使用一種命令修改就行了,推薦使用sed |
7.配置JAVA_HOME(所有節點)
vi /etc/profile |
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/ export PATH=$PATH:$JAVA_HOME/bin |
3.3啟動
1.啟動ClouderaManager(cdh-1)
在主節點啟動ClouderaManager
#啟動 systemctl startcloudera-scm-server #設定開機自啟 systemctl enable cloudera-scm-server |
2.啟動ClouderaAgent(所有節點)
#啟動 systemctl start cloudera-scm-agent #開機自啟 systemctl enablecloudera-scm-agent |
可以訪問http://192.168.100.10:7180使用者名稱密碼都是admin
4.使用
4.1登入
- 選擇試用版
4.2配置叢集
- 設定叢集的名稱
- 選擇叢集主機
- 配置CDH安裝包
- 配置CDH parcel的位置
- 選擇我們配置好的
- 等待下載包
- 檢查主機效能
4.3安裝Zookeeper
- 安裝選項
- 選擇服務安裝主機
- 資料庫配置
- 需要建立資料庫(cdh-1)
#建庫 create database activitydefault charset utf8; create database reportsdefault charset utf8; create database auditdefault charset utf8; create database metadatadefault charset utf8; |
#授權 grant all on activity.* to [email protected] identified by 'cdh'; grant all on activity.* to [email protected]'%' identified by 'cdh'; grant all on reports.* to [email protected] identified by 'cdh'; grant all on reports.* to [email protected]'%' identified by 'cdh'; grant all on audit.* to [email protected] identified by 'cdh'; grant all on audit.* to [email protected]'%' identified by 'cdh'; grant all on metadata.* to [email protected] identified by 'cdh'; grant all on metadata.* to [email protected]'%' identified by 'cdh'; |
- 測試連線
- 可以配置郵件報警
- 安裝
- 安裝完成
問題
記憶體 CPU過小 配置問題
總結
- 安裝過程還是比較簡單的,只需要配置yum就可以使用yum安裝
- 由於電腦的配置有限,導致出現了一些問題,記憶體儘量能給大一點就給大一點