一、環境准備
1.1硬件:centos7.6
2.1軟件:
jdk1.8
mysql5.7
MySQL JDBC jar
cm6.3.1
連接:https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
Parcel:
https://archive.cloudera.com/cdh6/6.3.1/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel https://archive.cloudera.com/cdh6/6.3.1/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 https://archive.cloudera.com/cdh6/6.3.1/parcels/manifest.json
以上軟件打包近網盤中,可自取:
鏈接:https://pan.baidu.com/s/1UH50Uweyi7yg6bV7dl02mQ
提取碼:nx7p
二、環境初始化
1、設置Linux主機名
各自節點執行修改主機名命令:
hostnamectl set-hostname cm
1.1修改 /etc/hostname 為自己想要的名字
然后編輯 /etc/hosts,如下
2、關閉集群防火牆
每個節點上執行
systemctl stop firewalld && systemctl disable firewalld && iptables -F
3、關閉集群selinux
vi /etc/selinux/config
SELINUX=disabled
修改成disabled之后 重啟linux系統生效
4、設置集群時鍾同步
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
5、每個節點部署JDK
[root@node06 ~]# mkdir /usr/java
[root@node06 ~]# tar -zxf cdh/jdk-8u191-linux-x64.tar.gz -C /usr/java/
[root@node06 ~]# chown -R root:root /usr/java/jdk1.8.0_191
[root@node06 ~]# echo "export JAVA_HOME=/usr/java/jdk1.8.0_191" >> /etc/profile
[root@node06 ~]# echo "export PATH=/usr/java/jdk1.8.0_191/bin:${PATH}" >> /etc/profile
[root@node06 ~]# source /etc/profile
[root@node06 ~]# which java
/usr/java/jdk1.8.0_191/bin/java
[root@node06 ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
6、主節點部署MySQL
安裝MySQL(主節點安裝即可)
安裝步驟:
(1)此處需要注意的是centos 7 默認安裝的是mariadb,如果不卸載直接安裝的話會報錯,報錯信息mariadb-libs is obsoleted by mysql-community-libs-5.7.20-1.el7.x86_64
rpm -qa | grep mariadb #查看安裝信息 rpm -e mariadb-libs* --nodeps #根據查找到的軟件包信息卸載
(2)安裝MySQL(前四個必須按以下順序安裝,因為有依賴)
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
(3)基本設置
# 啟動服務 systemctl start mysqld.service # 在日志中會生成初始密碼 vim /var/log/mysqld.log # 登錄 mysql -uroot -p # 設置密碼 set password = password('test01.') #設置密碼 #授權用戶root使用密碼passwd從任意主機連接到mysql服務器 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd' WITH GRANT OPTION; flush privileges;
7、創建CDH源數據庫、用戶、amon服務的數據庫
create database cmf DEFAULT CHARACTER SET utf8; create database amon DEFAULT CHARACTER SET utf8; grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY 'cmf';
grant all on cmf.* TO 'cmf'@'localhost' IDENTIFIED BY 'cmf';
grant all on cmf.* TO 'cmf'@'主機名' IDENTIFIED BY 'cmf';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
grant all on amon.* TO 'amon'@'localhost' IDENTIFIED BY 'amon';
grant all on amon.* TO 'amon'@'主機名' IDENTIFIED BY 'amon';
flush privileges;
8、主節點部署JDBC
[root@node06 ~]# mkdir -p /usr/share/java
[root@node06 ~]# cp cdh/mysql-connector-java-5.1.47.jar /usr/share/java/
[root@node06 ~]# cd /usr/share/java/
[root@node06 java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
[root@node06 java]#
三、CDH部署
1、離線部署CM server及agent
1.1【所有節點】 創建軟件目錄解壓軟件
[root@node06 opt]# mkdir cloudera-manager
[root@node06 opt]# cd
[root@node06 ~]# cd cdh
[root@node06 cdh]# tar -zxf cm6.3.1-redhat7.tar.gz -C/opt/cloudera-manager
1.2【06主節點執行】 選擇06為主節點作為cm server,直接部署
[root@node06 cdh]# cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/
[root@node06 x86_64]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@node06 x86_64]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.3【所有節點(包含主節點)】 選擇所有節點作為cm agent,直接部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.4【所有節點】修改agent配置,指向server節點06
sed -i "s/server_host=localhost/server_host=node06.research.com/g" /etc/cloudera-scm-agent/config.ini
1.5【修改主節點】的server配置
[root@node06 x86_64]# vim /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=node06.research.com
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=www.research.com
com.cloudera.cmf.db.setupType=EXTERNAL
2、主節點部署離線parcel源
2.1 安裝httpd
yum install -y httpd
2.2 部署離線parcel源
[root@node06 ~]# mkdir -p /var/www/html/cdh6_parcel
[root@node06 ~]# cp cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
[root@node06 ~]# mv cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.1[root@node[root@node06 ~]# mv cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
[root@node06 ~]# mv cdh/manifest.json /var/www/html/cdh6_parcel/
[root@node06 ~]# systemctl start httpd
2.3 頁面訪問http://10.295.102.6/cdh6_parcel/

3、06主節點啟動server
[root@node06 ~]# systemctl start cloudera-scm-server
[root@node06 ~]# ll /var/log/cloudera-scm-server/
total 20
-rw-r----- 1 cloudera-scm cloudera-scm 16679 Dec 10 18:27 cloudera-scm-server.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Dec 10 18:27 cmf-server-nio.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Dec 10 18:27 cmf-server-perf.log
[root@node06 ~]# tail /var/log/cloudera-scm-server/cloudera-scm-server.log
4、所有節點啟動agent
systemctl start cloudera-scm-agent
5、web頁面操作
登錄界面,默認登錄用戶名和密碼都是admin
安裝集群
1. 選擇安裝版本
2. 修改集群名稱
3. 為CDH群集安裝指定主機
此處是在當前管理的主機里選擇機器,不要在新主機里查找,另外這個地方顯示的主機信息一定要對,我開始的時候因為主機名配置出問題,導致無法識別主機名稱和IP,雖然agent的uuid是分配到了四台機器上,但是后邊的安裝無法進行。
指定主機
4. 選擇CDH版本安裝
5. 檢查環境
分別點擊 Inspect Network Performance 與 Inspect Hosts
發現異常,點擊 顯示檢查器結果
解決方案
第一個警告直接在所有節點上執行echo 10 > /proc/sys/vm/swappiness
第二個警告按照上面的說明,在所有節點上執行這兩條命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
然后將命令寫到 /etc/rc.local,保證每次重啟時能執行
配置完成后。重新運行監測程序
6. 群集設置--選擇安裝服務--按需選擇
7. 群集設置--自定義角色
默認即可,如有特殊需求可自定義配置(比如DataNode建議最少三個機器,但是默認master不含DataNode角色,可以更改)
8. 開始執行安裝命令
9. 安裝完成
