Cloudera Manager和CDH安裝部署


本次安裝采用離線安裝的方式,需要提前下載好需要的包。

1. 准備工作

1.1 環境說明

  • 操作系統:RedHat企業級Linux6.5 64-bit
  • Cloudera Manager:5.8.4
  • CDH:5.8.4
  • Mysql:5.7.21

1.2 CM下載地址

CM5.8.4下載地址http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.8.4/RPMS/x86_64/
PxpwKU.png

1.3 CDH下載地址

CDH5.8.4下載地址http://archive.cloudera.com/cdh5/parcels/5.8.4/
PxpN80.png

1.4 mysql下載地址

mysql下載地址https://dev.mysql.com/downloads/mysql/
PxpavT.png

2.安裝mysql

Cloudera Manager支持三種數據庫類型:MySQL、PostgreSQL、Oracle。這里我們選擇使用MySQL

2.1主從模式安裝

mysql采用熱雙機備份安裝的方式,具體安裝過程參照mysql主從模式安裝

2.2設置外部鏈接許可

2.2.1新增防火牆配置

1)修改iptable配置:vi /etc/sysconfig/iptables (保存退出:wq)

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(新增3306端口訪問許可)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

注意:如果不需要開啟防火牆,可直接關閉防火牆(service iptables stop)
2)重啟防火牆:service iptables restart
CDH_2-1.png
3)查看防火牆狀態:service iptables status

2.2.2 mysql授權外部訪問許可

(1)登錄mysql:mysql -uroot -p
(2)授權外部訪問

grant all privileges on *.* to root@'%' identified by 'ztesoft' with grant option;

. --指所有庫的所有權限,單獨指定庫時:database.*
% --指所有IP可以訪問,單獨指定IP時:’IP1,IP2’
(3)刷新數據庫緩存:flush privileges;
(4)測試連接
CDH_2-2.png

3. 安裝JDK

3.1 查看是否已安裝jdk

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# rpm -qa |grep java

(1)無內容輸出--未安裝JDK
(2)已安裝
備:卸載JDK
CDH_3-1.png

3.2 安裝JDK

(1) 進入安裝包所在目錄
(2) 執行下面的命令,安裝JDK

yum install oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

CDH_3-2.png

3.3 JDK環境變量設置

(1)獲取JDK安裝版本

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# ll /usr/java/
total 4
drwxr-xr-x. 8 root root 4096 Dec  7 23:53 jdk1.7.0_67-cloudera

(2)編輯/etc/profile文件

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# vi /etc/profile

(3)增加環境變量

export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

注意:將上述內容放到profile文件的最末尾
(4)生效環境變量

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# source /etc/profile

(5)測試安裝成果

java -version

注意:上述配置JDK環境變量的方法,是將jdk環境設置到系統變量中,也可以僅將jdk的環境變量設置為用戶級別的,即將第(3)步中的內容添加到目標用戶的.bash_profile(該文件位於用戶家目錄下)文件末尾

4. 安裝CM和CDH環境准備工作

4.1 查看IP配置

(1)查看網卡信息:ifconfig
CDH_4-1.png
(2) 查看IP配置

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# ls /etc/sysconfig/network-scripts/

CDH_4-2.png

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth3

CDH_4-3.png

4.2 配置hosts文件

(1) 編輯hosts文件:vim /etc/hosts

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# vim /etc/hosts

CDH_4-4.png
(2) 其它每台機器的hosts文件做同樣的配置

4.3 關閉防火牆

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# service iptables stop

CDH_4-5.png

4.4 關閉selinux

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# vim  /etc/selinux/config
   #將文件中的SELINUX="" 為 disabled ,然后重啟。
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# setenforce 0

如果不想重啟系統,使用命令setenforce 0

注:
setenforce 1 設置selinux 成為enforcing模式
setenforce 0 設置selinux 成為permissive模式
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# getenforce(或者sestatus -v)
Permissive

4.5 創建hadoop用戶並授權

集群每台機器都得做如下操作:

4.5.1 創建hadoop用戶組和用戶

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# groupadd hadoop     //新建hadoop組
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# useradd -g hadoop -p hadoop hadoop//新建hadoop用戶
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# passwd hadoop       //修改hadoop密碼
Changing password for user hadoop.
New password: 
BAD PASSWORD: it is based on a dictionary word
Retype new password: 
passwd: all authentication tokens updated successfully.

4.5.2 給hadoop用戶配置sudo權限

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# vi /etc/sudoers
添加:hadoop  ALL=(ALL)  NOPASSWD: ALL
hadoop為當前需要設置的系統用戶,本次設置為hadoop

4.6 mysql創建數據庫並賦權

(1)創建用戶

create user 'scmuser'@'%' identified by 'ztesoft'; 
create user 'hivedbuser'@'%' identified by 'ztesoft'; 
create user 'amondbuser'@'%' identified by 'ztesoft'; 

(2) 創建數據庫

create database scm DEFAULT CHARACTER SET utf8;
create database hivedb DEFAULT CHARACTER SET utf8;
create database amondb DEFAULT CHARACTER SET utf8;

(3) 賦權給每個用戶

grant all on scm.* to 'scmuser'@'%' identified by 'ztesoft';
grant all on hivedb.* to 'hivedbuser'@'%' identified by 'ztesoft';
grant all on amondb.* to 'amondbuser'@'%' identified by 'ztesoft';

(4) 刷新privileges

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.7 搭建本地軟件倉庫

4.7.1 修改httpd服務端口

(1)vi /etc/httpd/conf/httpd.conf
(2)修改Listen為12580
CDH_4-6.png

將端口由 80改為12580,默認端口會遇到各種限制

(3)啟動http服務

[root@SHQZ-PS-IOT-TEST-WEB01 ~] service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 10.45.47.103 for ServerName[  OK  ]

4.7.2 本地倉庫建立方法1

(1)CM本地倉庫

mkdir -p /repos/cm/;
cd /repos/cm
mkdir cm540.p0.165.el6
ln –s cm540.p0.165.el6 latest

把cloudera-manager的安裝包上傳到latest目錄中

cd /repos/cm	
createrepo .(注意命令后面的點)   ---生成RPMS 索引信息

CDH_4-7.png
(2) 搭建cdh倉庫

mkdir -p /repos/parcels/cdh; 
cd /repos/parcels/cdh
mkdir  cdh5.3.1.p0.5-el6           --cdh的版本號
ln -s cdh5.3.1.p0.5-el6 latest

上傳CDH-5.3.1-1.cdh5.3.1.p0.5-el6.parcel包和manifest.json文件到latest目錄下

(3) 在Apache服務器上添加安裝包的軟連接

cd /var/www/html/
ln -s /repos repos創建軟連接,把/repos映射到repos下面

(4) 配置yum
在每個機器上,進入到/etc/yum.repos.d下,新增myrepo.repo,如下
CDH_4-8.png
在myrepo.repo文件中,添加如下內容:
CDH_4-9.png
其中紅色框選的部分配置的url事先在瀏覽器中訪問試試,如果出現下方的結果,則表示我們創建的本地倉庫沒問題,如果不能訪問,請檢查一下防火牆設置是否正確,或檢查httpd服務是否啟動或者啟動成功了。

CDH_4-10.png

4.7.3 本地倉庫建立方法2(建議采用此方法)

(1)創建本地倉庫,並放入安裝包

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# mkdir  /var/www/html/cm531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# mv  /root/cm-cdhfile/CM5.3.1/*  /var/www/html/cm531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# mkdir  /var/www/html/cdh531
[root@SHQZ-PS-IOT-TEST-WEB01~]#mv /root/cm-cdhfile/CDH5.3.1/*  /var/www/html/cdh531

注意:將cm的安裝包放到/var/www/html/cm531文件夾下,cdh的安裝包以及manifest.json這個文件一並放到/var/www/html/cdh531,后面創建本地yum源會用到

(2) 創建索引

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# chmod -R  oug+rx /var/www/html/cm531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# cd /var/www/html/cm531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# createrepo .      //注意后面的點
Spawning worker 0 with 6 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
//如果提示command not found,則安裝createrepo:yum install createrepo
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# chmod -R  oug+rx /var/www/html/cdh531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# cd /var/www/html/cdh531
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# createrepo .
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

(3) 創建新的cloudera-manager.repo和cdh.repo源配置文件

[root@SHQZ-PS-IOT-TEST-WEB01 ~]#cd /etc/yum.repos.d
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# touch cloudera-manager.repo
[root@SHQZ-PS-IOT-TEST-WEB01 ~]# vi cloudera-manager.repo
[cloudera-manager]
name=cloudera-manager-5
baseurl=http://172.17.87.4:12580/cm531
gpgcheck=0
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]#
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]# touch cdh.repo
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]# vi cdh.repo
[cdh]
name=cdh5
baseurl=http://10.45.47.103:12580/cdh531
gpgcheck=0
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]#

5. 安裝Cloudera Manager

5.1 安裝CM

(1)進入CM安裝包存放路徑

[root@SHQZ-PS-IOT-TEST-WEB01 ~]# cd /var/www/html/cm531
[root@SHQZ-PS-IOT-TEST-WEB01 cm531]# ll

CDH_5-1.png

(2)安裝CM

[root@SHQZ-PS-IOT-TEST-WEB01 cm531]# yum install cloudera-manager-server-5.3.1-1.cm531.p0.191.el6.x86_64.rpm
Installed:
cloudera-manager-server.x86_64 0:5.3.1-1.cm531.p0.191.el6     
Dependency Installed:
cloudera-manager-daemons.x86_64 0:5.3.1-1.cm531.p0.191.el6 
Complete!

5.2 配置CM使用的數據庫實例

(1) 進入/etc/cloudera-scm-server目錄

[root@SHQZ-PS-IOT-TEST-WEB01 cm531]# cd /etc/cloudera-scm-server
[root@SHQZ-PS-IOT-TEST-WEB01 cloudera-scm-server]# ls
db.properties  log4j.properties

(2) 修改db.properties文件

[root@host103 cloudera-scm-server]# vi db.properties

# The database host
# If a non standard port is needed, use 'hostname:port'
com.cloudera.cmf.db.host=172.17.87.4:3306
//記得把#去掉
# The database name
com.cloudera.cmf.db.name=scm

# The database user
com.cloudera.cmf.db.user=scmuser

# The database user's password
com.cloudera.cmf.db.password=123456

"db.properties" 22L, 526C written
[root@SHQZ-PS-IOT-TEST-WEB01 cloudera-scm-server]#

5.3 拷貝mysql驅動

將mysql驅動包放置到/usr/share/cmf/lib/目錄下,最好放置到每台機器上

[root@SHQZ-PS-IOT-TEST-WEB01 lib]# ll mysql-connector-java-5.1.33-bin.jar
-rwxrwxrwx. 1 root root 959987 Dec  9 18:17 mysql-connector-java-5.1.33-bin.jar
[root@SHQZ-PS-IOT-TEST-WEB01 lib]# pwd 
/usr/share/cmf/lib

5.4 啟動CM

(1) 啟動cloudera-scm-server服務

[root@SHQZ-PS-IOT-TEST-WEB01 cloudera]# service cloudera-scm-server start
Starting cloudera-scm-server:                              [  OK  ]
[root@SHQZ-PS-IOT-TEST-WEB01 cloudera]# service cloudera-scm-server status
cloudera-scm-server (pid  63461) is running...
[root@SHQZ-PS-IOT-TEST-WEB01 cloudera]#

(2) 查看后台日志

[root@SHQZ-PS-IOT-TEST-WEB01 cloudera-scm-server]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

(3) 訪問CM控制台
打開瀏覽器:http://172.17.87.4:7180/ 初始密碼是:admin/admin
CDH_5-2.png

6.安裝CDH

6.1 登陸CM控制台,安裝CDH

CDH_6-1.png
CDH_6-2.png
CDH_6-3.png
CDH_6-4.png
CDH_6-5.png
CDH_6-6.png
注意:當集群機器數量較大時,為了方便安裝JDK可以選中該復選框,但當集群沒有連接外網時,yum安裝失敗。解決的辦法是:增加JDK.repo文件指向JDK安裝包存放的倉庫。

[root@SHQZ-PS-IOT-TEST-WEB01 cm531]# cd /etc/yum.repos.d/
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]# cp cdh.repo JDK.repo
[root@SHQZ-PS-IOT-TEST-WEB01 yum.repos.d]# vi JDK.repo
[JDK]
name=jdk-version1.7
baseurl=http://172.17.87.4:12580/cm531/
gpgcheck=0

CDH_6-7.png
CDH_6-8.png
CDH_6-9.png
CDH_6-10.png
CDH_6-11.png
CDH_6-12.png
CDH_6-13.jpg

6.2 檢查主機的正確性

6.2.1 主機時鍾不同步的解決辦法

(1)假設
集群規划為3個節點,每個節點的ip、主機名和部署的組件分配如下

192.168.56.121   cdh1   NameNode、Hive、ResourceManager、HBase
192.168.56.122   cdh2   DataNode、SSNameNode、NodeManager、HBase
192.168.56.123   cdh3   DataNode、HBase、NodeManager

我們一般選用namenode 節點作為時鍾同步服務器,其他節點為客戶端同步時間到該節點。
(2)安裝ntp

[root@host103 etc]#yum install ntp 

(3)修改 cdh1 上的配置文件 /etc/ntp.conf
增加server 10.45.47.103
並注釋掉其他所有server

(4)啟動 ntp

[root@host103 etc]#service ntpd start 

(5)設置開機啟動

[root@host103 etc]# chkconfig ntpd on 

ntpq用來監視ntpd操作,使用標准的NTP模式6控制消息模式,並與NTP服務器通信。
ntpq -p 查詢網絡中的NTP服務器,同時顯示客戶端和每個服務器的關系。

(6)在其他datanode節點上執行第3步操作
在其他服務器 /etc/ntp.conf 中增加server 192.168.56.121

6.2.2 Cloudera建議

CDH_6-14.png
通過調節swap參數,來優化linux虛擬內存管理:基於程序的局部性原理,linux通過虛擬內存機制來實現並發運行進程,linux發現物理內存不夠用時,會根據LRU算法將一部分內存swap out到硬盤;當運行被換出的那個線程時,在swap in 到內存里;
例如:echo 0 > /proc/sys/vm/swappiness (值為0表示盡量都用物理內存,值為100表示積極的使用swap分區;)這個參數很重要;小心調節;一般默認為60; 在緊急處理線上問題時,可以緊急使用一下。
修改:/etc/sysctl.conf中增加如下代碼:

net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 2097152
net.core.rmem_max =  41943040
net.core.wmem_default = 2097152
net.core.wmem_max =  41943040
vm.swappiness = 1 
執行命令使上面的配置生效:/sbin/sysctl -p 

6.2.3 sysctl -p 報錯解決辦法

修改 linux 內核文件 /etc/sysctl.conf后執行sysctl -p 報錯

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

執行下面的命令:

modprobe bridge;
lsmod|grep bridge;

6.3 安裝CDH服務

安裝完cm和CDH后,可以開始安裝cm的監控即 cloudera manager service
(1) 進入cm主頁點擊右上角添加 cloudera manager service
CDH_6-15.png
(2) 為每個服務選擇主機
CDH_6-16.png
(3) 點擊繼續
cm監控需要一個數據庫配置;一個cm需要一個數據庫,這里我們使用之前創建的amondb數據庫。
如果之前未創建,需要先創建cm的數據庫,步驟如下:
登陸mysql
創建庫
create database amondb DEFAULT CHARACTER SET utf8;
賦權
grant all on amondb.* to amondbuser@'%' identified by 'ztesoft';
生效賦權
flush privileges;
注:revoke all on amondb.* from amondbuser #收回權限的操作
記得在scm安裝的主機上要添加mysql的驅動包,其目錄是/usr/share/cmf/lib
否則會出現如下報找不到驅動的錯誤
(4) 測試連接通過后點繼續
CDH_6-17.png
(5) 默認配置,不修改點繼續
CDH_6-18.png
(6) 安裝完成后點繼續
CDH_6-19.png
回到主頁這邊如果所示問號變成綠色了
CDH_6-20.png

6.3.2 服務安裝順序

一般而言,服務安裝順序如下:
(1) zookeeper和hdfs需要先安裝
(2) 然后安裝yarn
(3) Ks依賴solr,solr依賴hbase,hbase依賴zookeeper
Hive在安裝了hdfs和zookeeper以后可以安裝,sentry依賴hive。在cm主頁選擇安裝

6.3.3 安裝zookeeper

(1) 點擊添加服務,選擇zookeeper
CDH_6-21.png
(2) 選擇zookeeper服務要安裝到的主機
CDH_6-22.png
(3) 使用默認配置,直接點擊繼續
CDH_6-23.png
(4) 點擊繼續,完成安裝
CDH_6-24.png

6.3.4 安裝hdfs服務

(1) 點擊添加服務,選擇HDFS
CDH_6-25.png
CDH_6-26.png
(2) 選擇HDFS服務要安裝到的主機
CDH_6-27.png
(3) 使用默認配置,直接點擊繼續
CDH_6-28.png
(4) 點擊繼續,完成安裝
CDH_6-29.png

6.3.4 安裝YARN

(1) 點擊添加服務,選擇YARN
CDH_6-30.png
CDH_6-31.png
(3) 使用默認配置,直接點擊繼續
CDH_6-32.png
(4) 點擊繼續,完成安裝
Pxp0rF.png

6.3.5 安裝hive

安裝hive服務前必須先要安裝Mapreduce或者YARN。
安裝hive之前需要將mysql的driver(mysql-connector-java-5.1.33-bin.jar)放置到/opt/cloudera/parcels/CDH-5.3.1-1.cdh5.3.1.p0.5/lib/hive/lib目錄下,最好每台主機都放置.
(1) 點擊添加服務,選擇hive
PxpZ4I.png
(2) 選擇hive服務要安裝到的主機
Pxpn8P.png
(3) 安裝hive需要進行數據庫配置,這里我們使用之前配置好的數據庫
PxpVUA.png
(4) 使用默認配置,直接點擊繼續
PxpEEd.png
(5) 點擊繼續,完成安裝
PxpmCt.png

6.3.8 安裝hbase

安裝hbase之前需要先安裝zookeeper服務!
(1) 點擊添加服務,選擇HDFS
PxpQKS.png
(2) 選擇HDFS服務要安裝到的主機
Pxpugf.png
(3) 使用默認配置,直接點擊繼續
PxpKv8.png
(4) 點擊繼續,完成安裝
PxpGUs.png

6.3.8 其他安裝

安裝過程與以上類似,根據規划內容將服務安裝到特定的主機上,配置參數先不需要改,后面可以通過參數調優修改服務配置參數。

7.4 部署客戶端配置

通過部署客戶端配置,使所有修改的配置生效。
PxplDg.png
Pxp1bQ.png

7. FAQ

7.1 主機:頁面交換到磁盤警告

一般出現於CDH前期,安裝服務時:
Pxp8Ej.png
PxpJ5n.png
原因:如果該運行狀況測試失敗,可能表明主機操作系統的配置不當或主機上運行的進程太多.
解決辦法:嘗試減少 vm.swappiness,或增加主機內存。
調整Linuxswappiness參數:
cat /proc/sys/vm/swappiness //查看swappiness值
臨時調法:
sysctl vm.swappiness=0 //默認為60,0表示最大限度使用物理內存、100表示積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間里面。
永久調法:
需要在/etc/sysctl.conf修改,加上:

[root@timeserver ~]# cat /etc/sysctl.conf
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
vm.swappiness=0
[root@timeserver ~]# sysctl -p

7.2 HDFS:Canary測試失敗

PxpU2V.png
報錯:Canary無法在目錄 /tmp/.cloudera_health_monitoring_canary_files 中寫入文件。
原因:該運行狀況測試失敗可能表示群集未能正確或及時地滿足基本客戶端datanode請求
處理方法:【HDFS】--【實例】--【添加角色實例】--【datanode選擇主機】--【繼續】

7.3 YARN、zookeeper、hbase等報server之間通信問題

PxptCq.png
報錯:Canary 測試建立與 ZooKeeper 服務的連接或者客戶端會話失敗。
原因:datanode之間防火牆限制導致不能互通
解決辦法:關閉防火牆或將CDH、CM相關的端口添加到/etc/sysconfig/iptables和/etc/sysconfig/ip6tables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM