最詳細的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。