離線安裝Cloudera Manager 5.3

離線安裝ClouderaManager 5.3

 

關於CDHClouderaManager

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的ApacheHadoop構建,並集成了很多補丁,可直接用於生產環境(本次項目環境使用了4個節點的CDH5.1.3版本)。

Cloudera Manager則是爲了便於在集羣中進行Hadoop等大數據處理相關的服務安裝和監控管理的組件,對集羣中主機、HadoopHiveSpark等服務的安裝配置管理做了極大簡化。

系統環境

·        實驗環境:windowVMware WorkStation虛擬機

·        操作系統:Redhat 5.8 x86_64 (至少內存2G以上,這裏內存不夠的同學建議還是整幾臺真機配置比較好,將CDH的所有組件全部安裝會佔用很多內存,我已開始設置的虛擬機內存是1G,安裝過程中直接卡死了)

·        ClouderaManager5.3

·        CDH: 5.3

安裝說明

官方參考文檔:

http://www.cloudera.com/content/cloudera/en/documentation/cloudera-manager/v5-latest/Cloudera-Manager-Installation-Guide/cm5ig_install_path_C.html

官方共給出了3中安裝方式:第一種方法必須要求所有機器都能連網,由於最近各種國外的網站被牆的厲害,我嘗試了幾次各種超時錯誤,巨耽誤時間不說,一旦失敗,重裝非常痛苦。第二種方法下載很多包。第三種方法對系統侵入性最小,最大優點可實現全離線安裝,而且重裝什麼的都非常方便。後期的集羣統一包升級也非常好。這也是我之所以選擇離線安裝的原因。

 

相關包的下載地址

Cloudera Manager下載地址:

http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el5-cm5.3.0_x86_64.tar.gz

下載信息:

http://www.cloudera.com/content/cloudera/en/documentation/cloudera-manager/v5-latest/Cloudera-Manager-Version-and-Download-Information/Cloudera-Manager-Version-and-Download-Information.html#cmvd_topic_1

CDH安裝包地址:

http://archive.cloudera.com/cdh5/parcels/latest/,由於我的操作系統爲RedHat5.8,需要下載以下文件:

  • CDH-5.3.0-1.cdh5.3.0.p0.30-el5.parcel

  • CDH-5.3.0-1.cdh5.3.0.p0.30-el5.parcel.sha

  • manifest.json

注意 :與CDH4的不同,原來安裝CDH4的時候還需要下載IMPALACloudera Search(SOLR)CDH5中將他們包含在一起了,所以只需要下載一個CDH5的包就可以了。

 

準備工作:系統環境搭建

以下操作均用root用戶操作。

 

1. 網絡配置(所有節點)

vi/etc/sysconfig/network 修改hostname(主節點)

NETWORKING=yes
HOSTNAME=cdh1

通過 service network restart 重啓網絡服務生效。

vi /etc/hosts,修改ip與主機名的對應關係

172.16.30.2   cdh1
172.16.30.3   cdh2

172.16.30.4   cdh3
注意: 這裏需要將每臺機器的ip及主機名對應關係都寫進去,本機的也要寫進去,否則啓動Agent的時候會提示hostname解析錯誤。

 

2.打通SSH,設置ssh無密碼登陸(所有節點)

(1)所有節點(CDH1、CDH2、CDH3):

生成無密碼的密鑰對:ssh-keygen -t rsa 一路回車,生成無密碼的密鑰對。

(2)主節點(CDH1):將公鑰添加到認證文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3scp文件到datenode節點(CDH2):

    scp ~/.ssh/authorized_keys root@cdh2:~/.ssh/

4)將CDH2公鑰添加到認證文件中:

    cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5)複製CDH2的認證文件到CDH3

         scp ~/.ssh/authorized_keys root@cdh3:~/.ssh/

6)將CDH3公鑰添加到認證文件中:

    cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(7)設置authorized_keys的訪問權限:

chmod 600 ~/.ssh/authorized_keys

         8)將最終生成的認證文件複製到所有節點:

                   scp ~/.ssh/authorized_keys root@cdh1:~/.ssh/

                   scp~/.ssh/authorized_keys root@cdh2:~/.ssh/

         9)測試(不需要密碼能夠直接登陸):

                   sshcdh1 date;

                   sshcdh2 date;

                   sshcdh3 date;

3.安裝OracleJava(所有節點)

Redhat,自帶OpenJdk,不過運行CDH5需要使用OracleJdk,需要Java 7的支持。由於默認有限選擇系統自帶的JDK,這裏可以直接卸載自帶的OpenJdk,使用 rpm -qa | grep java 查詢java相關的包,使用 rpm -e --nodeps 包名卸載之。當然也可以通過改變環境變量,指引選擇新版本的JDK。

Oracle的官網下載jdkrpm安裝包,並使用 rpm -ivh 包名安裝。

修改文件/etc/profile改變環境變量,執行命令:

export JAVA_HOME=/usr/java/jdk1.7.0_71

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$PATH

爲使生效:source /etc/profile

 

4.安裝配置MySql(主節點)

通過 yum install mysql-server 安裝mysql服務器。 chkconfigmysqld on 設置開機啓動,並 service mysqld start 啓動mysql服務,並根據提示設置root的初始密碼:

mysqladmin -uroot password 'xxxx'

mysql -uroot-pxxxx 進入mysql命令行,創建以下數據庫:

#hive
create database hive DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATEutf8_general_ci;

設置root授權訪問以上所有的數據庫:

#授權root用戶在主節點擁有所有數據庫的訪問權限:

grant allprivileges on *.* to 'root'@'%' identified by 'mysql' with grant option;

flushprivileges;

官方MySql配置文檔: http://www.cloudera.com/content/cloudera/en/documentation/cloudera-manager/v5-latest/Cloudera-Manager-Installation-Guide/cm5ig_mysql.html#cmig_topic_5_5

 

這裏注意以下兩點:

1、 不能訪問MySql

報錯ERROR 1045 (28000)Access denied for user 'root'@'localhost'

具體解決方法參考:

http://feinibuke.blog.51cto.com/1724260/388025

2、 後面選擇Hive的元數據庫MySql,測試鏈接不成功:

解決方法:

grant all privileges on *.* to 'root'@'%'identified by 'mysql' with grant option;

flush privileges;

 

5.關閉防火牆和SELinux

注意: 需要在所有的節點上執行,因爲涉及到的端口太多了,臨時關閉防火牆是爲了安裝起來更方便,安裝完畢後可以根據需要設置防火牆策略,保證集羣安全。

關閉防火牆:

serviceiptables stop (臨時關閉) 
chkconfig iptables off (重啓後生效)

關閉SELINUX(實際安裝過程中發現沒有關閉也是可以的,不知道會不會有問題,還需進一步進行驗證):

setenforce0 (臨時生效) 
修改 /etc/selinux/config 下的SELINUX=disabled (重啓後永久生效)

 

6.所有節點配置NTP服務

集羣中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。 具體思路如下:

master節點作爲ntp服務器與外界對時中心同步時間,隨後對所有datanode節點提供時間同步服務。

所有datanode節點以master節點爲基礎同步時間。

所有節點安裝相關組件: yum install ntp 。完成後,配置開機啓動: chkconfig ntpd on ,檢查是否設置成功: chkconfig--list ntpd 其中2-5on狀態就代表成功。

主節點配置

在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裏選用65.55.56.206作爲對時中心, ntpdate -u 65.55.56.206

ntp服務只有一個配置文件,配置好了就OK 這裏只給出有用的配置,不需要的配置都用#注掉,這裏就不在給出:

driftfile /var/lib/ntp/drift
restrict
127.0.0.1
restrict -
6 ::1
restrict default nomodify notrap
server
65.55.56.206 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置文件完成,保存退出,啓動服務,執行如下命令: service ntpd start

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

synchronised to NTP server () at stratum 2
time correct to within
74 ms
polling server every
128 s

如果出現異常請等待幾分鐘,一般等待5-10分鐘才能同步。

配置ntp客戶端(所有datanode節點)

driftfile /var/lib/ntp/drift
restrict
127.0.0.1
restrict -
6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -
6 default kod nomodify notrapnopeer noquery
#這裏是主節點的主機名或者ip
server cdh1
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

ok保存退出,請求服務器前,請先使用ntpdate手動同步一下時間: ntpdate -u n1 (主節點ntp服務器)

這裏可能出現同步失敗的情況,請不要着急,一般是本地的ntp服務器還沒有正常啓動,一般需要等待5-10分鐘纔可以正常同步。啓動服務: service ntpd start 因爲是連接內網,這次啓動等待的時間會比master節點快一些,但是也需要耐心等待一會兒。

 

正式開工

安裝ClouderaManager Server Agent

主節點解壓安裝

clouderamanager的目錄默認位置在/opt下,解壓: tar xzvf cloudera-manager*.tar.gz 將解壓後的cm-5.3.0和cloudera目錄放到/opt目錄下。

Cloudera Manager 5建立數據庫

首先需要去MySql的官網下載JDBC驅動, http://dev.mysql.com/downloads/connector/j/,解壓後,找到mysql-connector-java-

5.1.33-bin.jar,放到/opt/ cm-5.3.0/share/cmf/lib/中。

在主節點初始化CM5的數據庫:

cd /opt/cm-5.3.0/share/cmf/schema/

./scm_prepare_database.shmysql cm -hlocalhost -uroot -pmysql --scm-host localhost scm scm scm

Agent配置

修改/opt/ cm-5.3.0/etc/cloudera-scm-agent/config.ini中的server_host爲主節點的主機名。

同步Agent到其他節點

scp -r /opt/cm-5.3.0 root@cdh2:/opt/

scp -r /opt/cm-5.3.0 root@cdh3:/opt/

在所有節點創建cloudera-scm用戶

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

 

準備Parcels,用以安裝CDH5

CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動創建)。

相關的文件如下:

  • CDH-5.3.0-1.cdh5.3.0.p0.30-el5.parcel

  • CDH-5.3.0-1.cdh5.3.0.p0.30-el5.parcel.sha

  • manifest.json

 

相關啓動腳本

通過 /opt/ cm-5.3.0/etc/init.d/cloudera-scm-serverstart 啓動服務端。

通過 /opt/ cm-5.3.0/etc/init.d/cloudera-scm-agentstart 啓動Agent服務。

 

CDH5.3.0的安裝配置

以下圖片均引自網絡(本人安裝未及時截屏),相應步驟會有說明。

 

Cloudera Manager ServerAgent都啓動以後,就可以進行CDH5的安裝配置了。這時可以通過瀏覽器訪問主節點的7180端口測試一下了(由於CM Server的啓動需要花點時間,這裏可能要等待一會才能訪問),默認的用戶名和密碼均爲admin

1、admin登陸:

spacer.gif

 

2、選擇免費版本的CM5

spacer.gif

3、各個Agent節點正常啓動後,可以在當前管理的主機列表中看到對應的節點。選擇要安裝的節點,點繼續:

spacer.gif

注:本次安裝當前管理的主機CDH2CDH3

4接下來,出現以下包名,說明本地Parcel包配置無誤,直接點繼續就可以了。

spacer.gif

         5點擊,繼續,如果配置本地Parcel包無誤,那麼下圖中的已下載,應該是瞬間就完成了,然後就是耐心等待分配過程就行了,大約10多分鐘吧,取決於內網網速。

         spacer.gif

         6接下來是服務器檢查,可能會遇到以下問題:

Cloudera 建議將 /proc/sys/vm/swappiness 設置爲 0。當前設置爲 60。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf 以在重啓後保存該設置。您可以繼續進行安裝,但可能會遇到問題,ClouderaManager 報告您的主機由於交換運行狀況不佳。以下主機受到影響:

解決:Sysctl vm.swappiness=0

spacer.gif

    7、接下來是選擇安裝服務:

spacer.gif

    注:HDFS的NAMENODE選擇所有主機(CDH2和CDH3)

    8、下面是集羣設置的審查頁面,我這裏都是保持默認配置的:

spacer.gif

    9、接下來是選擇安裝服務:

spacer.gif

    注:本次安裝由於虛擬機配置問題,選擇了核心Hdoop

10、終於到安裝各個服務的地方了,注意,這裏安裝Hive的時候可能會報錯,因爲我們使用了MySql作爲hive的元數據存儲,hive默認沒有帶mysql的驅動,通過以下命令拷貝一個就行了(CDH2和CDH3上覆制):

cp/opt/cm-5.1.3/share/cmf/lib/mysql-connector-java-5.1.33-bin.jar /opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/lib/

spacer.gif

11、接下來是數據庫的設置,檢查通過後就可以進行下一步的操作了:

spacer.gif

    注:由於本次安裝選擇的是核心Hadoop,這裏只有Hive的數據庫設置。

        如果測試未成功,分析以下兩點:

(1)   java驅動是否複製到相應路徑

(2)   MySql權限是否設置正確:

grant all privileges on *.* to 'root'@'%'identified by 'mysql' with grant option;

flush privileges;

        只要確保以上兩點配置正確,必然能夠連接成功。

    12服務的安裝過程大約半小時內就可以完成:

    注:本次安裝,並沒有完全安裝成功,安裝到Hue服務時報錯,原因是機器Python版本比較低(2.4),CDH要求Python版本爲2.6。

    不過,目前項目中沒有使用到Hue,所以,本次安裝直接跳過Hue的安裝。

    刷新下頁面(終於使用到了一張自己的圖片,呵呵):

spacer.gif

CDH5.3.0的基本使用

1.     啓動

安裝完成後,所有服務是已啓動的。這裏,主要考慮到,平時使用虛擬環境,開機後:

 

服務節點(CDH1):

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

Agent節點(CDH2CDH3):

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

在系統上啓動服務後,在頁面啓動Custer1所有服務,再啓動Cloudera Management Service服務。

2.     關閉

和啓動順序相反。


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