1. 程式人生 > 實用技巧 >CDH叢集離線部署(CDH6.3.1 + CDH6.3.2 + CentOS7)

CDH叢集離線部署(CDH6.3.1 + CDH6.3.2 + CentOS7)

1.1原生Hadoop的問題

  1. 版本管理過於混亂
  2. 部署過程較為繁瑣,升級難度較大
  3. 相容性差
  4. 安全性低

1.2CDHCM(ClouderaManager)

  1. CDH(Cloudera’s Distribution Including Apache Hadoop),是Hadoop眾多分中的一種,由Cloudera公司維護,基於穩定版本的ApacheHadoop構建,並集成了很多補丁,可以直接用於生產環境。就是Hadoop等大資料安裝包的第三方版本的集合,提供了Hadoop等大資料服務的安裝包。
  2. CM(ClouderaManager)提供了一個管理和監控Hadoop等大資料服務的web介面,能讓我們方便安裝大資料生態圈的大部分服務。

1.3Hadoop自動化部署和管理平臺

主流的有ApacheAmbari和ClouderaManager,相對應的Hadoop的發行版為HDP和CDH。這種自動化部署平臺的功能一般如下:

  1. 提供Hadoop大資料叢集
  2. 管理Hadoop大資料叢集
  3. 監控Hadoop大資料叢集

PS:HDP的公司(hortonworks)已經被CDH公司(Cloudera)收購了

1.4Cloudera Manager架構

  1. Server:負責軟體安裝、配置,啟動和停止服務,管理服務執行的群集。核心
  1. Agent:安裝在每臺主機上。負責啟動和停止程序,配置,監控主機。
  1. Management Service:由一組執行各種監控,警報和報告功能角色的服務。
    圖表的生成和管理
  1. Database:儲存配置和監視資訊。
  1. Cloudera Repository:軟體由Cloudera 管理分佈儲存庫。(有點類似Maven的中心倉庫;線上安裝(從中心倉庫拉取)和離線安裝(離線庫)
  1. Clients:是用於與伺服器進行互動的介面(API和Admin Console)

1.5CDH下載

官方下載地址:https://archive.cloudera.com

  1. CM下載

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

  1. 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訪問了

http://192.168.100.10/centos/

#修改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

  1. 移動檔案安裝包檔案到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/

  1. 製作CM源生成repodata檔案,需要用到createrepo這個包(cdh-1)

#安裝

yum install -y createrepo

#進入到cm的rpm包存放目錄

cd /var/www/html/cm

#生成repodata資料夾

createrepo .

  1. 配置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)

  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

  1. 初始化資料庫

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm root root

5.安裝agent節點

只需要在chd-2cdh-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安裝
  • 由於電腦的配置有限,導致出現了一些問題,記憶體儘量能給大一點就給大一點