1 文檔編寫目的
本文主要講述安裝部署CDH集羣的前置準備工作以及個人的一些理解。
安裝部署CDH集羣的前置準備通常包括以下步驟:
1. 安裝操作系統並配置IP地址
2. 更改主機名及hosts文件
3. 關閉防火牆
4. 關閉SELinux
5. 配置操作系統的Repo源
6. 配置時鐘同步
7. 安裝數據庫並初始化
8. 安裝Mysql的JDBC驅動
9. 創建並配置Cloudera Manager的Repo源
10.安裝Oracle JDK
11.安裝並初始化Cloudera Manager
下面將分別闡述個人對於以上步驟的一些理解。
文章目錄結構:
1. 文檔編寫目的
2. 安裝操作系統並配置IP地址
3. 更改主機名及hosts文件
4. 關閉防火牆
5. 關閉SELinux
6. 配置操作系統的Repo源
7. 配置時鐘同步
8. 安裝數據庫並初始化
9. 安裝Mysql的JDBC驅動
10.創建並配置Cloudera Manager的Repo源
11.安裝Oracle JDK
12.安裝並初始化Cloudera Manager
13.總結
2 安裝操作系統並配置IP地址
這一步可以參考我之前寫的文章《如何在HP dl380 Gen9服務器上安裝Redhat 7.2並配置軟RAID》、《如何爲Hadoop集羣服務器綁定雙萬兆網卡》
需要確保集羣服務器之間網絡互通,Hadoop不支持IP v6,所以需要關閉IP v6相關服務。如果做了bond,IP地址對應的是bond0綁定的地址。
3 更改hostname及hosts文件
需要確保hostname唯一,同一個CDH集羣內不能存在兩個hostname相同的節點,否則會出現異常;另外,hostname不能包含特殊字符,比如“_”,否則安裝Cloudera Manager Server時會報找不到主機的異常;如果hostname包含字母,建議全部使用小寫字母。
操作系統默認是通過/etc/hosts文件進行IP地址的解析,主要是定義主機名和IP地址的映射關係,如果沒配置DNS,集羣所有節點都要有至少包含本集羣所有節點的hosts文件。
4 關閉防火牆
需要確保集羣內所有節點能夠互相訪問,通常情況下,會永久關閉防火牆。如果企業在安全方面要求較爲嚴格的話,比如銀行、運營商,可能需要啓用主機防火牆,配置相應的防火牆策略,只開放某些機器對某些必要端口的訪問權限,比如ssh服務的22端口,agent的7190端口。
5 關閉SELinux
SELinux 主要作用就是最大限度地減小系統中服務進程可訪問的資源(最小權限原則)
SELinux 有三種工作模式,分別是:
1. enforcing:強制模式。違反 SELinux 規則的行爲將被阻止並記錄到日誌中。
2. permissive:寬容模式。違反 SELinux 規則的行爲只會記錄到日誌中。一般爲調試用。
3. disabled:關閉 SELinux。
SELinux 工作模式可以在/etc/selinux/config 中設定。
如果想從 disabled 切換到 enforcing 或者 permissive 的話,需要重啓系統。反過來也一樣。
enforcing 和 permissive 模式可以通過 setenforce 1|0 命令快速切換,該命令是臨時生效,所以如果要永久關閉SELinux,需要同時更改/etc/selinux/config文件內容並執行“setenforce 0”命令。
更多關於SELinux的知識,可參考:
https://baijiahao.baidu.com/s?id=1590170088632157084&wfr=spider&for=pc
6 配置操作系統的Repo源
1、在線安裝,集羣所有機器能夠訪問外網,確認Repo源正常後,可跳過這一步驟。
2、離線安裝,需要在CM節點掛載操作系統版本相同的鏡像,部署Web Server配置http形式的Repo源並拷貝到集羣所有節點,確保集羣其他節點能夠正常訪問,當然,不一定非要在CM節點,只要在集羣能夠訪問的任一節點部署都行。
這一步驟主要是爲安裝後續的rpm包做準備,包括ntp的包,安裝ClouderaManager相關的rpm包以及其底層依賴的rpm包。
7 配置時鐘同步
部署分佈式的Hadoop集羣,都必須要做時鐘同步,統一集羣時間。CDH目前支持ntp和chrony兩種時鐘同步服務,任選一種進行時鐘同步配置即可。如果未配置時鐘同步,CM界面會有告警提示,並且可能會導致某些依賴時鐘同步的組件異常退出或者無法啓動,比如Zookeeper和Kudu,甚至會影響CDH集成的某些服務,比如Kerberos,Kerberos的認證機制包含時間戳,也依賴集羣時鐘同步,有興趣可自行了解。
8 安裝數據庫並初始化
CDH目前支持四種數據庫,分別是PostgreSQL、Mysql、Mariadb以及Oracle,其中PostgreSQL不建議用於生產集羣,安裝數據庫後,一般要做初始化操作,主要是設置root密碼,允許用戶遠程登錄之類的,然後需要進入數據庫,創建CM和CDH組件相關的數據庫及用戶,並授予相關用戶權,用於存儲相關組件的數據,比如Oozie、Hive的MetaStore,Navigator的Nas,Nav等等。
我安裝比較多的是Mysql和Mariadb,後面以介紹這兩類數據庫爲主。我會專門寫一篇相關的文章,請持續關注。
9 安裝Mysql的JDBC驅動
安裝JDBC驅動的目的是依賴數據庫的保證相關組件能夠和Mysql/Mariadb數據庫建立正常的通信,不過CDH並不支持Mariadb的JDBC驅動,所以,不管安裝Mysql或是Mariadb數據庫,都是安裝的Mysql的JDBC驅動,默認安裝路徑是/usr/share/java。
10 創建並配置Cloudera Manager的Repo源
1、在線安裝,此步驟可跳過,只要配置好CM的Repo源即可。
2、離線安裝,在Cloudera官網下載CM的rpm包,下載地址:http://archive.cloudera.com/cm5/
下載完成後上傳到CM節點,使用yum執行如下命令:“yum-y install createrepo”,等待安裝完成,然後進入放置CM的rpm包的目錄下,執行“createrepo .”,創建本地Repo源,然後配置CM的Repo源並拷貝到集羣所有節點。
11 安裝Oracle JDK
在CM節點上安裝Oracle JDK,下載的CM的rpm包裏面已經包含了OracleJDK,所以配置好CM的Repo源可以直接用yum安裝,需要注意的是,CDH並不支持openjdk,所以,如果操作系統默認使用openjdk的話,建議將openjdk卸載或者調整jdk的優先級,讓操作系統默認使用Oracle JDK。
12 安裝並初始化Cloudera Manager
安裝Cloudera Manager的rpm包,對應包名爲“cloudera-manager-server”,安裝完成後需要運行腳本進行初始化操作:
/usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password -h bigdata32 |
---|
紅色字體部分需要依據實際情況修改,“mysql”對應的是數據庫類型,Mariadb和Mysql都是使用mysql,第一個“cm”是CM的數據庫名,第二個“cm”是CM數據庫對應的用戶名,“password”是CM數據庫的密碼,“-h”參數選填,如果數據庫部署在CM節點以外的機器上,需要通過-h參數指定數據庫所在服務器。
13 總結
以上就是安裝部署CDH集羣前置準備的內容,時間原因,寫得比較粗糙,後續會對相關內容進一步細化,請持續關注!