如何用cloudera manager接管已有hadoop的cdh版本集羣

    本文介紹如何搭建cloudera manager去接入已有hadoop組件(cdh),搜索國內資料並無整體介紹,沒有任何參考文章可以借鑑;通過大數據qq交流羣當中某老師提供的國外某篇cloudera cto的文章得到解決思路,經實驗調試可以實現此功能。

    下面進入本文主題。

一、下載必備文件:

1.cloudera manager:http://archive-primary.cloudera.com/cm5/cm/5/

wKiom1jd08Cw02oKAABRJmZlPq8559.png-wh_50

大部分公司內大數據集羣環境都無公網訪問權限,針對當前集羣系統環境和想要接入的cm版本找到對應版本離線包,對於redhat、centos系統來說el6就是redhat6、centos6系統,之後找到想要安裝的cm版本,本文搭建過程採用cloudera-manager-el6-cm5.9.0_x86_64.tar.gz



2.cdh安裝包:http://archive.cloudera.com/cdh5/parcels/5.9.0/

本搭建過程採用CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel、CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1,parcel文件爲cdh壓縮包,執行安裝過程會進行解壓並且上傳到各節點;sha1文件內爲壓縮包的校驗碼

wKiom1jd1PvA1jBDAABzQV7aaZA234.png-wh_50



3.mysql的jdbc驅動jar包:http://dev.mysql.com/downloads/connector/j/

wKioL1jd1bODNC8vAABzQbQq3_I101.png-wh_50


4.mysql5.6:http://dev.mysql.com/downloads/mysql/5.6.html

本搭建過程採用mysql5.6社區版源碼包mysql-5.6.35.tar.gz

wKiom1jd1gjDQQ0vAABzQcTFFYM335.png-wh_50


二、cloudera manager安裝:

1.server端安裝配置mysql5.6:

解壓mysql安裝包後執行

yum install cmake ncurses-* -y

其餘看編譯輸出,缺少什麼包就再yum安裝什麼

進入mysql解壓目錄,執行

cmake -DCMAKE_INSTALL_PREFIX=/export/mysql5.6
make && make install

如果沒有報錯繼續執行

順利執行過後將/etc/my.cnf刪除或移走,在mysql安裝目錄當中簡單編寫my.cnf並啓動,具體配置請根據自身環境進行設置,本文不對此內容贅述


2.解壓cloudera-manager-el6-cm5.9.0_x86_64.tar.gz到安裝目錄:

默認cloudera和cm-5.9.0目錄放置在/opt下,如果想放在其他目錄須留意對應配置


3.導入數據,執行完成後會有cm庫:

/export/tmp/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot --scm-host 127.0.0.1 scm scm scm

4.登錄mysql,進行必要的修改配置:

set global binlog_format='ROW';
grant all on *.* to 'scm'@'%' identified by 'scm';

否則默認binlog格式爲statement,cm會啓動報錯

對scm進行所有主機的授權


5.cloudera manager server端配置:

創建用戶

useradd --system --home=/opt/cm-5.9.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "cloudera SCM user" cloudera-scm

在之前的cloudera目錄下創建parcel-repo目錄,將CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel和CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1放在此目錄下,重命名sha1文件爲sha,否則cm找不到sha文件無法進行校驗,會重新去公網上下載壓縮包

mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha


6.mysql jar包放入lib庫:

將解壓mysql-connector-java-5.1.40.tar.gz得到的文件放在/opt/cm-5.9.0/share/cmf/lib下


7.配置db連接信息:

vim /opt/cm-5.9.0/etc/cloudera-scm-server/db.properties

wKioL1jd_CKDscEjAABzQbmBKLM480.png-wh_50

host由於mysql就裝在本機所以寫127地址即可,庫名、用戶名、密碼遵循上面創建用戶和授權的內容進行填寫


8.配置cm啓動腳本的java環境:

vim /opt/cm-5.9.0/etc/init.d/cloudera-scm-agent
vim /opt/cm-5.9.0/etc/init.d/cloudera-scm-server
export JAVA_HOME=/usr/java/jdk1.7.0_51


9.agent配置:

vim /export/tmp/opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini

wKiom1jd_kGjgJ7EAABED1Xod2k054.png-wh_50

server_host配置server端的ip或者主機名

server_port和port沒有修改,使用默認的即可

listening_ip可以不做修改

之後將/opt/cm-5.9.0此目錄拷貝到其他agent節點的對應目錄

注:須確保/opt/cm-5.9.0/lib/cloudera-scm-agent下的uuid文件刪掉,否則會出現cm web中主機顯示衝突的情況


10.啓動服務:

server端執行

/opt/cm-5.9.0/etc/init.d/cloudera-scm-server start

agent端執行

/opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start

server端啓動端口7180 7182

agent端啓動端口9000



三、web配置:

1.添加cloudera management service:

瀏覽器訪問server端地址的7180端口,用戶名密碼默認admin admin

登錄後不按照提示進行安裝,直接點擊左上方主頁,然後選擇右邊添加管理服務


wKiom1jd_ojRqFYhAABzQcU1VOQ030.png-wh_50

填入管理員登錄mysql的連接信息即可

wKioL1jd_omSjrf1AAB2fF0z74U569.png-wh_50

審覈更改頁不用做任何更改

wKioL1jd_uKCMVFkAABzQQyYNTI644.png-wh_50

之後等待安裝完成,安裝過後會發現集羣監控已經有數據,點選所有主機,檢查所有主機檢查各節點狀態

wKioL1jd_1uRhrZ2AAELP2hEQQw625.png-wh_50

wKiom1jd_1yzc4GvAADkfdT1cIE674.png-wh_50

回到主頁,點擊cluster1右側的添加服務


2.添加hdfs服務:

wKioL1jd_8KA02UjAAELP0y2nEM711.png-wh_50

選擇hdfs繼續,根據原有集羣情況進行主機選擇

wKioL1jd_8KQ1fTuAACA51ZPT5M562.png-wh_50

審覈更改部分可以根據現有集羣配置進行填寫,左側會有對應參數名

wKioL1jd__fxIUveAAELP47wEhs913.png-wh_50

需要注意的是,datanode數據目錄不管原來所有者是誰必須要修改爲hdfs,否則無法通過cm啓動,並且原有集羣對應進程要先停掉

點擊繼續後不要等待進程進行,直接返回主頁,會發現hdfs集羣角色已經添加


wKiom1jeACzD50JbAAELP6eDRd0161.png-wh_50

進入hdfs配置journalnode目錄dfs.journalnode.edits.dir

wKioL1jeAC3B_uVLAACA5-EhaNA431.png-wh_50


之後啓動集羣,觀察監控數據

wKioL1jeAGjwC8XbAAFdZrkJg58257.png-wh_50

注:其餘hadoop組件接入原則也是停掉原有進程,修改對應目錄屬主爲組件名稱的用戶,比如hdfs,yarn,同時修改cm上對應的關鍵配置。此種做法對程序環境改造很大,很多標準必須遵循cloudera manager的規則,而且有丟失hdfs元數據風險。


四、後記:

此次搭建cm集羣遇到一些問題,比如添加hdfs角色後無法啓動namenode,報錯java.io.IOException: There appears to be a gap in the edit log.  We expected txid 1, but got txid 16,可能數據不連續,通過hadoop namenode -recover命令進行修復後可以啓動,此命令不敢保證在生產環境執行沒有問題;又或者datanode無法啓動,遇到以下報錯Operation not permitted

wKioL1jeAODgoqxMAAFdZlqfkbQ824.png-wh_50
之後發現原集羣的對應目錄所有者爲hadoop,而根據其他角色啓動進程的所有者hdfs來進行權限修改後datanode可以啓動


五、參考資料:

https://www.quora.com/Cloudera-company/Can-we-install-Cloudera-Manager-to-manage-an-existing-cluster     瞭解新搭建的cm接入現有集羣思路

http://www.361way.com/cloudera-manager-cdh-install/5033.html    cm離線安裝步驟參考


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章