1. 程式人生 > >最詳細的CDH安裝攻略

最詳細的CDH安裝攻略

·安裝前的準備工作

·安裝CM的準備

首先要選定叢集主節點,主節點的配置記憶體應至少大於10GB,8核心cpu,配置不夠的話可能會十分卡。

我們會在主節點上安裝CM以管理各個叢集節點

CM的安裝有兩種方式:

1.             下載bin檔案然後線上安裝。這種方式要求環境儘量穩定且有較好的網路,一旦中途安裝失敗,CM安裝程式會清除以前的資料重新開始安裝。

2.             下載CM的tar包然後解壓到/opt目錄下。這種方式解壓tar包即可。

考慮到環境穩定問題我們採用離線模式安裝

CM下載地址:

http://archive.cloudera.com/cm5/

這裡下載對應的CM版本,centOS系統的包名帶el,例如:centOS6應該下載的包就是cloudera-manager-el6-cm5.12.1_x86_64.tar。這裡除了考慮系統版本還要考慮mysql的版本因為有的版本是不支援MariaDB的。

·配置各節點

·網路配置

·修改各節點主機名

vim /etc/sysconfig/network

例:

         NETWORKING=yes

HOSTNAME=cdh1

NETWORKING_IPV6=no

PEERNTP=no

修改完成後重啟網路服務service network restart

·修改ip與主機名的對應關係

vim /etc/hosts

例:

         192.168.1.101   cdh1

192.168.1.102   cdh2

192.168.1.103   cdh3

·安裝java

CDH需要java版本在7.5以上,此步驟略去。

·安裝MySql

這裡注意root使用者需要有遠端訪問許可權,此步驟略去。

·關閉防火牆和SElinux

這裡為了安裝方面臨時關閉防火牆,安裝好後可以根據需求在開啟防火牆。

SELinux是預設關閉的,這裡檢查一下狀態。

·配置所有節點ntp同步(重要)

叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。這裡我們也將主節點做為ntp伺服器的節點,然後所有節點向主節點同步時間。

首先各個節點安裝ntp服務yum install ntp

安裝好後設置開機啟動chkconfig ntpd on

檢查是否設定成功:chkconfig --list ntpd其中2-5為on狀態就代表成功。

主節點設定

在更改ntp配置前先手動與對詩中心同步一下時間,以免本機與對時中心時間差距太大,使得ntpd不能正常同步ntpdate -u ip

然後修改ntp配置檔案vim /etc/ntp.conf

加入server ip prefer

之後啟動服務service ntpd start

檢查是否成功,用ntpstat命令檢視同步狀態,出現以下狀態代表啟動成功:

synchronised to NTP server () at stratum2time correct to within 74 mspolling server every 128 s

如果失敗可以等待5-10分鐘後再次檢視。

節點配置

在ntp配置檔案加入server 主節點名

請求伺服器前,先使用ntpdate手動同步一下時間:ntpdate -u 主節點名

然後啟動ntp服務。

·安裝CDH的準備

CDH的安裝也有兩種方式:

1.      線上安裝,在CM安裝好後安裝叢集時可以線上下載安裝。

2.      離線下載parcel包放在指定目錄。

同樣的我們也採用離線下載的方式

CDH下載地址:

http://archive.cloudera.com/cdh5/


·安裝CDH的準備

·安裝CM和agent

將之前下載的CM包放下/opt目錄下直接解壓,解壓後有兩個資料夾:cloudra和cm-版本號

·建立CM資料庫

下載合適的jdbc版本http://dev.mysql.com/downloads/connector/j/

下載完成後將解壓出的jar檔案放到/opt/cm-版本號/share/cmf/lib/。然後執行初始化資料庫命令

/opt/cm-版本號/share/cmf/schema/scm_prepare_database.shmysql cm -hlocalhost -uroot -pxxxx --scm-host localhost scm scm scm

·agentpeizhi

修改/opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。然後將agent同步到其他節點

Scp -r /opt/cm-版本號 [email protected]節點名(或者ip):/opt/

最後在所有節點建立cloudera-scm使用者

useradd --system --home=/opt/cm-版本號/run/cloudera-scm-server/--no-create-home --shell=/bin/false --comment "Cloudera SCM User"cloudera-scm

·準備Parcels

將之前下載的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(若無parcel-repo需要手動建立)。檔案如下:

         CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel

CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1

manifest.json

最後將CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1,重新命名為CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1檔案。

·通過CM部署CDH

·啟動各個節點的cloudra-scm-agent與主節點的CM

通過/opt/cm-版本號/etc/init.d/cloudera-scm-server start啟動服務端。

通過/opt/cm-版本號/etc/init.d/cloudera-scm-agent start啟動Agent服務。

這裡在/etc/cm-版本號/logs/cloudra-scm-agent和/etc/cm-版本號/logs/cloudra-scm-server下可以檢視日誌檔案。

這時可以通過瀏覽器訪問主節點的7180埠測試一下了(由於CM Server的啟動需要花點時間,這裡可能要等待一會才能訪問),如下圖所示:

出現如下頁面說明CM已經啟動了。

·安裝各節點的CDH

通過admin管理使用者進入系統(密碼也是admin)後頁面如下所示:

這裡勾選接受條款繼續安裝。

選擇要安裝的CM的型別,這裡選擇了第一個,點選繼續

下面需要注意,在圖中所示,點選當前管理主機可以看到安裝了agent的全部主機,如果有未看到的節點則agent啟動未成功。

這裡我們不要在搜尋這裡搜尋主機進行安裝,因為這樣回去線上下載jdk和agent以及版本匹配的CDH包,因為我們採用離線方式所以選擇另一種方式。

之後回看到自己已經下載好的parcels包,這裡使用預設的選項就行了,點選繼續

 

然後開始分配parcels包到各個節點,然後解壓啟用,全部節點完成後繼續下面的安裝。

選擇要在叢集上安裝的CDH服務,根據需求選擇

然後需要配置每個角色的伺服器,這裡HDFS和ZooKeeper會建議你配置3臺以上的伺服器


然後會要求你鍵入上圖所示的資訊檢查msyql的連線,成功後繼續。

之後是叢集設定,根據需求填寫


然後CM會發送啟動命令啟動各節點的服務,待服務全部啟動完成後點選繼續


最後就看到了CM管理叢集的首頁資訊,出現此頁面整個CDH叢集的安裝就算完成了。

·錯誤與問題彙總

·Yum安裝錯誤

·28, 'Connection timed out after 3鈻[6nmilliseconds'

沒有配置DNS,用vim開啟/etc/resolv.conf新增

         searchsz.fonsview.com

nameserver172.16.200.251

nameserver172.16.203.253

nameserver8.8.8.8

·初始化CM資料庫失敗

檢查mysql的jdbc版本是否相容

·scp同步到其他節點失敗

scp -r /opt/cm-5.3.3 [email protected]:/opt/

檢查目錄名是否正確,scp預設的埠是22,如果用其他埠則加入-P埠。

·Agent啟動錯誤

注意在scp同步之前不要啟動agent否則會將uuid也帶過來,這樣會導致兩個相同的uuid從而無法啟動Agent。刪除Agent的uuid,重啟Agent重新分配uuid。

/etc/hosts檔案一定要配置自己和其他節點否則會找不到節點。

·分配Parcels時顯示主機執行狀態不良

刪除cm_guid:rm -f /opt/ cm版本號/lib/cloudera-scm-agent/cm_guid

如果是多節點,則需要刪除每個agent節點的這個檔案。

重啟Agent進入到init.d目錄,執行

./cloudera-scm-agent restart

·伺服器檢查警告

1.      Cloudera 建議將/proc/sys/vm/swappiness 設定為?。當前設定為 60。使用 sysctl 命令在執行時更改該設定並編輯 /etc/sysctl.conf 以在重啟後儲存該設定。

使用echo ?> /proc/sys/vm/swappiness將swappiness設定為推薦的值即可。

2.      已啟用透明大頁面壓縮,可能會導致重大效能問題。

此問題按照提示操作即可。

之後重新檢查伺服器狀態

·啟動Hive、Oozie、HDFS報錯

Hive和Oozie都需要連線資料庫,所以我們將jdbc檔案拷貝到lib庫下,cp /opt/cm-版本號/share/cmf/lib/mysql-connector-java-5.1.35-bin.jar/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel/lib/hive/lib/(具體路徑有版本號決定)

·HDFS的NameNode路徑無法初始化錯誤

點選錯誤資訊開啟叢集管理頁面,選擇HDFS角色

點選配置選項卡,選擇NameNode選項,修改NameNode資料目錄然後儲存設定,重新啟動HDFS。