轉自:http://blog.51cto.com/teacheryan/1912116
本文介紹如何搭建cloudera manager去接入已有hadoop組件(cdh)。
一、下載必備文件:
1.cloudera manager:http://archive-primary.cloudera.com/cm5/cm/5/
大部分公司內大數據集群環境都無公網訪問權限,針對當前集群系統環境和想要接入的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文件內為壓縮包的校驗碼
3.mysql的jdbc驅動jar包:http://dev.mysql.com/downloads/connector/j/
4.mysql5.6:http://dev.mysql.com/downloads/mysql/5.6.html
本搭建過程采用mysql5.6社區版源碼包mysql-5.6.35.tar.gz
二、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
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
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
登錄后不按照提示進行安裝,直接點擊左上方主頁,然后選擇右邊添加管理服務
填入管理員登錄mysql的連接信息即可
審核更改頁不用做任何更改
之后等待安裝完成,安裝過后會發現集群監控已經有數據,點選所有主機,檢查所有主機檢查各節點狀態
回到主頁,點擊cluster1右側的添加服務
2.添加hdfs服務:
選擇hdfs繼續,根據原有集群情況進行主機選擇
審核更改部分可以根據現有集群配置進行填寫,左側會有對應參數名
需要注意的是,datanode數據目錄不管原來所有者是誰必須要修改為hdfs,否則無法通過cm啟動,並且原有集群對應進程要先停掉
點擊繼續后不要等待進程進行,直接返回主頁,會發現hdfs集群角色已經添加
進入hdfs配置journalnode目錄dfs.journalnode.edits.dir
之后啟動集群,觀察監控數據
注:其余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
之后發現原集群的對應目錄所有者為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離線安裝步驟參考