https://www.zybuluo.com/sasaki/note/242142
版本控制
@Title CDH5 Hadoop集群完全離線安裝步驟總結
@Version v1.0
@Timestamp 2015-12-14 14:25
@Author Nicholas
@Mail redskirt@outlook.com
1. 硬件准備
一個4節點的集群,Host對應關系如下:
192.168.53.230 master
192.168.53.231 slave01
192.168.53.232 slave02
192.168.53.233 slave03
服務器配置建議單節點CPU>雙核,內存>8G。
2. 軟件准備
- 系統環境CentOS6.5
- cloudera-manager-el6-cm5.3.8_x86_64.tar.gz(Cloudera Manager安裝包)
- CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha1
- CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel(CDH離線資源包)
- manifest.json
- mysql-connector-java-5.1.33-bin.jar
-
Jdk 1.7
CDH相關包的下載地址:
- http://archive.cloudera.com/cm5/cm/5/
- http://archive.cloudera.com/cdh5/parcels/latest/
注意: 由於官方版本眾多,一定要注意根據系統選擇對應版本,本文使用的CentOS6.5系列系統要使用cloudera-manager-el6-.tar.gz安裝包及CDH-5.3.8-1.cdh5.3.8.p0.5-.parcel離線資源。若版本選擇有誤安裝過程中也會出現錯誤。
與CDH4的不同,原來安裝CDH4的時候還需要下載IMPALA、Cloudera Search(SOLR),CDH5中將他們包含在一起了,所以只需要下載一個CDH5的包就可以了。
准備好以上環境就可以正式進行部署了。
一、准備環境
以下操作均使用root用戶。
-
網絡配置(所有節點)
分別修改各節點/etc/sysconfic/network文件,設置主機名為master,slave[01~03]。
[root@master ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
重啟網絡服務生效
[root@master ~]# service network restart
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface Auto_eth1: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
[ OK ]
修改/etc/hosts文件,配置主機與IP對應關系(所有節點),讓所有節點都保持如下對應關系:
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.53.230 master
192.168.53.231 slave01
192.168.53.232 slave02
192.168.53.233 slave03
-
打通master至slave[01~03]節點的SSH免密登陸
在主節點上執行 ssh-keygen -t rsa三次回車,生成無密碼的密鑰對,root用戶下默認在~/.ssh/目錄中,如沒有.ssh目錄則使用mkdir ~/.ssh新建一個即可。[root@master ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f4:9a:be:43:e7:0b:e4:99:aa:61:e6:c6:61:1e:fb:e4 root@master
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . |
| . . |
| S . |
| + o.=. |
| +++..Bo |
| +=+ o... |
| .ooE oo.. |
+-----------------+
將公鑰添加到認證文件中:
[root@master ~]# cat ~/.ssh/id_rsa.pub >> authorized_keys
[root@master ~]# ls ~/.ssh #authorized_keys即需要的認證文件
authorized_keys id_rsa id_rsa.pub known_hosts
設置authorized_keys的訪問權限: chmod 600 ~/.ssh/authorized_keys。
scp文件到所有slave[01~03]節點:
[root@master ~]# scp ~/.ssh/authorized_keys root@slave01:~/.ssh/
測試: 在主節點上ssh slave[01~03],若不需要密碼就能直接登陸進去了表示配置成功。
-
在所有節點安裝jdk1.7(略)
-
安裝Mysql(master節點)(略)
JDK與Mysql安裝可參考基礎環境配置匯總篇進入mysql並創建以下數據庫:
[root@master ~]# mysql -h localhost -u root -p
mysql> show databases;
+---------------------------+
| Database |
+---------------------------+
| information_schema |
| cm |
| cm_ |
| hive |
| mysql |
| navigator_audit_server |
| navigator_metadata_server |
| reports_manager |
| test |
+---------------------------+
9 rows in set (0.19 sec)
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
此處數據庫暫未創建也沒關系,可在部署上Cloudera Manager已經配置好需要的服務之后再創建所需數據庫即可。
-
關閉防火牆和SELinux(所有節點)
注意:需要在所有的節點上執行,因為涉及到的端口太多了,臨時關閉防火牆是為了安裝起來更方便,安裝完畢后可以根據需要設置防火牆策略,保證集群安全。
關閉防火牆:
service iptables stop #臨時關閉
chkconfig iptables off #重啟后生效
關閉SELINUX:
setenforce 0 #臨時生效
或
修改/etc/selinux/config 文件的 SELINUX=disabled #重啟生效
-
配置NTP服務(所有節點)(略)
ntp服務的配置可參考基礎環境配置匯總篇
二、安裝Cloudera Manager Server和Agent
-
在master節點解壓安裝包至/opt默認目錄
[root@master ~]# cd /usr/application/tmp/
[root@master tmp]# tar -zxvf cloudera-manager-el6-cm5.3.8_x86_64.tar.gz -C /opt
-
為Cloudera Manager 5建立數據庫
將准備好的mysql-connector-java-5.3.5-bin.jar文件放到/opt/cm-5.3.5/share/cmf/lib/中。[root@master tmp]# cp mysql-connector-java-5.1.35.jar /opt/cm-5.3.8/share/cmf/lib/
在master節點初始化CM5的數據庫
[root@master tmp]# /opt/cm-5.3.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm
-
配置Agent
修改/opt/cm-5.3.8/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名master。[root@master ~]# vim /opt/cm-5.3.8/etc/cloudera-scm-agent/config.ini
[General]
# Hostname of the CM server.
server_host=master
同步Agent到slave[01~03]節點
[root@master ~]# scp /opt/cm-5.3.8/ root@slave01:/opt/
-
在所有節點創建cloudera-scm用戶
useradd --system --home=/opt/cm-5.3.8/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
-
准備Parcels,用以安裝CDH5
將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動創建)。相關的文件如下:
- CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha1
- CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel
- manifest.json
最后將CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha1,重命名為CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha1,這點必須注意,否則,系統會重新下載CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha文件。
-
執行啟動腳本
在master節點啟動服務端:[root@master ~]# /opt/cm-5.3.8/etc/init.d/cloudera-scm-server start
在所有節點啟動Agent:
[root@slave01 ~]#/opt/cm-5.3.8/etc/init.d/cloudera-scm-agent start
以上腳本是啟動命令,相關停止或重啟命令僅需將start變成stop或restart即可。
二、配置CDH集群
Cloudera Manager Server和Agent都啟動以后,就可以進行CDH5的安裝配置了。
在瀏覽器打開http://master:7180進入CDH管理界面,由於CM Server的啟動需要花點時間,這里可能要等待一會才能訪問,默認的用戶名和密碼均為admin。
選擇安裝的集群,這里注意只有已啟動cloudera-scm-agent的主機才能被CM管理。
選擇我們安裝需要的Parcel包,這里可以看到我們已准備好的CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel包,若沒有,就檢查相關文件是否正確放入/parcel-repos中,且CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha1是否正確重命名。
繼續,如果上一步檢查配置沒問題,這里的第一個進度條應該瞬間完成,CM不需要再向用品下載Parcel,然后等待CM將Parcel分發到各slave節點上並激活。
CM會檢測集群很多環境項,
此處如果出現以下警告,是一個默認環境變量的問題,Cloudera建議將/proc/sys/vm/swappiness設置為0,當前設置為 60。在所有節點執行以下命令:
[root@master ~] #echo 0 > /proc/sys/vm/swappiness # 將該環境變量臨時設置為0
選擇需要在集群中部署的Hadoop服務,這里可以選擇推薦的內核,當然也可以選擇自定義服務。為了保險起見我先僅安裝需要的HDFS、YARN、MapReduce、Hive等組件,安裝太多不需要的服務在運行過程中會占用較多資源,且選擇服務過多到下一步初始化和啟動各節點角色的時候會花費大量時間。
這里不必擔心沒安裝的服務以后有需要怎么辦,在CM管理控制台中還可以隨時對各節點的服務進行添加和變更。分配各節點的角色,如無特殊需求這里保持默認即可。
所安裝的角色有些需要用到數據庫,則在mysql中新建相應數據庫即可。進行下一步之前必須測試數據庫的連通性。
[root@master ~]# mysql -h localhost -u root -p
# 新建hive數據庫
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
設置服務所需的目錄結構,若無特殊需求這里也可以保持默認目錄結構。
接下來就等待初始化和啟動服務,這里可能會遇到Hive報錯的問題,因為我們選擇了Mysql作為hive的元數據存儲,查看日志知道是Hive初始化Mysql的時候找不到jar文件,將mysql-connector-java-5.1.33-bin.jar拷貝到hive存放jar文件的目錄重試即可。
[root@master ~]# cp /opt/cm-5.3.8/share/cmf/lib/mysql-connector-java-5.1.33-bin.jar/opt/cloudera/parcels/CDH-5.3.8-1.cdh5.3.8.p0.12/lib/hive/lib/
如果服務都啟動成功,這個集群已安裝上所需要的Hadoop服務,整個部署過程結束。
在瀏覽器中輸入master地址訪問Cloudera Manager,端口7180。
發現有些報紅的服務,也可能會出現“無法發出查詢:對Service Monitor的請求超時”的錯誤提示,如果各個組件安裝沒有問題,一般是因為服務器較卡導致,CM監控集群會耗費較多資源,等待一段時間后會正常。訪問http://master:50070查看HDFS控制台。
訪問http://master:8088查看YARN控制台。