CDH5.1.3安裝手冊

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了不少補丁,可直接用於生產環境。java

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

注:本文檔全部操做均使用root登錄操做。mysql

1     節點說明

iplinux

節點編號web

名稱sql

物理機shell

192.168.1.170數據庫

masterexpress

管理節點json

本地

192.168.1.181

n1

節點1

本地

192.168.1.182

n2

節點2

192.168.1.5

192.168.1.184

n3

節點3

192.168.1.5

 

2     網絡配置(全部節點)

2.1 設置本地主機名(HOSTNAME)

打開/etc/sysconfig/network文件。

修改」HOSTNAME」爲指定的節點編號。

如圖所示:

 

2.2 開啓網絡服務

在命令窗口執行:service network restart

重啓網絡服務生效。

 

2.3 修改ip與主機對應關係

打開/etc/hosts文件。

將ip及節點編號存入。例如:

192.168.1.170   master

192.168.1.181   n1

192.168.1.182   n2

192.168.1.184   n3

如圖所示:

 

注意:這裏須要將每臺機器的ip及主機名對應關係都寫進去,管理節點的也要寫進去,不然啓動Agent的時候會提示hostname解析錯誤。

 

3     打通SSH,設置ssh無密碼登錄(全部節點)

3.1 僅在主節點上設置無密碼登錄

一、   在命令窗口執行:ssh-keygen -t rsa

此後,一路回車,生成無密碼的密鑰對。

二、   以後在命令窗口執行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

將公鑰添加到認證文件中。

三、   再以後,在命令窗口執行:chmod 600 ~/.ssh/authorized_keys

設置authorized_keys的訪問權限。

3.2 對設置結果進行測試,同時將祕鑰拷貝(需datanode節點在線)

在命令窗口執行:scp ~/.ssh/authorized_keys root@n1:~/.ssh/

測試:在主節點上ssh 節點n1,正常狀況下,不須要密碼就能直接登錄進去了。

有時可能須要重啓才能聯通。

 

4     安裝Oracle的Java(全部節點)

CentOS自帶OpenJdk,但運行CDH5須要使用Oracle的Jdk,須要Java 7的支持。

4.1 卸載自帶的OpenJdk

在命令窗口執行:rpm -qa | grep java

4.2 安裝jdk

一、  在/etc下建立文件夾/java,並將jdk-7u79-linux-x64.tar.gz拷貝到」/etc/java文件夾中」

二、  在命令窗口執行:tar xvf jdk-7u79-linux-x64.tar.gz

進行解壓縮。

三、  打開/etc/profile文件,在末尾追加以下內容:

export JAVA_HOME=/etc/java/jdk1.7.0_79

export JRE_HOME=/etc/java/jdk1.7.0_79/jre

export PATH=$PATH:/etc/java/jdk1.7.0_79/bin

export CLASSPATH=./:/etc/java/jdk1.7.0_79/lib:/etc/java/jdk1.7.0_79/jre/lib

四、  從新啓動系統後,輸入:java -version,若是看到以下截圖說明你的jdk已經安裝成功了。

 

5     安裝配置MySql(僅主節點)

5.1 安裝mysql服務器

在命令窗口執行:yum install mysql-server

5.2 設置mysql服務

「mysqld」是用來啓動mysql數據庫的命令。

設置開機啓動,在命令窗口執行:chkconfig mysqld on

啓動mysql服務,在命令窗口執行:service mysqld start

5.3 初始化mysql默認帳戶root的密碼爲root

在命令窗口執行:mysqladmin -u root password 'root'

5.4 用root帳戶進入mysql

在命令窗口執行:mysql -uroot -proot(注意此處語法爲mysql –u用戶名 –p密碼)

5.5 建立所需數據庫

在命令窗口執行:create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;(#hive)

以後,在命令窗口再執行:create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;(#activity monitor)

5.6 設置root帳戶在主節點擁有mysql全部數據庫的訪問權限

在命令窗口執行:grant all privileges on *.* to 'root'@'master' identified by 'root' with grant option;(注意identified by後跟的是’密碼’)

以後,爲促使設置生效,在命令窗口執行:flush privileges;

最終可執行」exit;」命令退出mysql登錄狀態。

 

6     關閉防火牆和SELinux (全部節點)

6.1 關閉防火牆

在命令窗口執行:service iptables stop(臨時關閉)

在命令窗口執行:chkconfig iptables off(重啓後生效)

6.2 關閉SELINUX

在命令窗口執行:setenforce 0(臨時關閉)

修改/etc/selinux/config文件中的 SELINUX=disabled(重啓後永久生效)

 

7     配置NTP服務(全部節點)

集羣中全部主機必須保持時間同步,若是時間相差較大會引發各類問題。具體思路以下:

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

全部datanode節點以master節點爲基礎同步時間。

7.1 安裝相關組件(全部節點)

在命令窗口執行:yum install ntp

7.2 設置開機啓動(全部節點)

在命令窗口執行:chkconfig ntpd on

7.3 檢查是否設置成功(全部節點)

在命令窗口執行:chkconfig --list ntpd

其中2-5爲on(啓動)狀態就表明成功

7.4 主節點的配置文件設置(僅主節點)

打開/etc/ntp.conf文件,註釋掉「server」相關的內容,僅留以下內容:

driftfile /var/lib/ntp/drift

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

# 容許內網其餘機器同步時間

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 0.centos.pool.ntp.org perfer

# 容許上層時間服務器主動修改本機時間

restrict 0.centos.pool.ntp.org nomodify notrap noquery

# 外部時間服務器不可用時,以本地時間做爲時間服務

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

 

7.5 設置對時中心(僅主節點)

設置配置文件,

爲免本機與對時中心時間差距太大,使得ntpd不能正常同步。這裏選用阿里巴巴0.centos.pool.ntp.org做爲對時中心,

在命令窗口執行:ntpdate -u 0.centos.pool.ntp.org

7.6 啓動NTP服務(僅主節點)

在命令窗口執行:service ntpd start

以後,在命令窗口執行:ntpstat(查看同步狀態,出現下圖所示內容表示同步成功)

若是出現異常請等待幾分鐘,通常等待5-30分鐘才能同步。

 

7.7 各datanode節點的配置文件設置(僅datanode節點)

打開/etc/ntp.conf文件,註釋掉「server」相關的內容,僅留以下內容:

driftfile /var/lib/ntp/drift

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

#這裏是主節點的主機名或者ip,僅設置主節點

server master

# 外部時間服務器不可用時,以本地時間做爲時間服務

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

注:若是在命令窗口執行:ntpdate -d master出現以下結果:

正常狀況下stratum這個值得範圍是「0~15」。出現這個狀況,是由於NTP server尚未和其自身或者它的server同步上。須要查主節點服務是否已經正常啓動。

 

8     安裝Cloudera Manager Server 和Agent

8.1 解壓縮Cloudera Manager組件(僅主節點)

將下載的cloudera-manager-el6-cm5.1.3_x86_64.tar.gz文件放在/opt目錄下,以後解壓縮,進入/opt目錄後,在命令窗口執行:tar xzvf cloudera-manager*.tar.gz

8.2 安裝mysql數據庫驅動(僅主節點)

找到mysql的jdbc驅動mysql-connector-java-5.1.38-bin.jar,並放到/opt/cm-5.1.3/share/cmf/lib/中。

8.3 在主節點建立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

8.4 初始化CM5的數據庫(僅主節點)【暫時報錯,但不知是否有影響】

在命令窗口執行:/opt/cm-5.1.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

 

報錯信息以下:

[root@master ~]# /opt/cm-5.1.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

Verifying that we can write to /opt/cm-5.1.3/etc/cloudera-scm-server

log4j:ERROR Could not find value for key log4j.appender.A

log4j:ERROR Could not instantiate appender named "A".

Creating SCM configuration file in /opt/cm-5.1.3/etc/cloudera-scm-server

groups: cloudera-scm:無此用戶

Executing:  /etc/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.1.3/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.1.3/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

log4j:ERROR Could not find value for key log4j.appender.A

log4j:ERROR Could not instantiate appender named "A".

[2016-04-13 03:18:09,146] INFO     0[main] - com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection(DbCommandExecutor.java:238) - Successfully connected to database.

All done, your SCM database is configured correctly!

 

8.5 Agent配置(僅主節點)

修改/opt/cm-5.1.3/etc/cloudera-scm-agent/config.ini中的server_host爲主節點的主機名,即將」server_host」的值置爲」master」。

8.6 同步Agent到其餘節點(在主節點同步到其餘節點)

在命令窗口對各節點執行:scp -r /opt/cm-5.1.3 root@n1:/opt/

8.7 在各datanode節點建立cloudera-scm用戶(各datanode節點)

在命令窗口執行:useradd --system --home=/opt/cm-5.1.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

8.8 準備Parcels,用以安裝CDH5(僅主節點)

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

相關的文件以下:

1>、CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel

2>、CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1

3>、manifest.json

最後將CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名爲CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha,這點必須注意,不然,系統會從新下載CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel文件。

8.9 相關服務啓動(全部節點)

在命令窗口執行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start(啓動cloudera-scm服務端)(僅主節點)。

以後,在命令窗口執行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(啓動Agent服務)(主節點及各datanode節點)。

在此啓動的實際上是個service腳本,須要中止服務將以上的start參數改成stop就能夠了,重啓是restart。

 

9     CDH5安裝前,Datanode節點擴展(包括全部節點的修改)

9.1 Datanode節點nN建立(以某一個datanode節點爲模板進行)

以VMware的克隆功能生成一個節點所在的虛擬機。

9.2 新節點nN內的基本設置(僅新建的datanode節點)

一、在系統->首選項->網絡鏈接中,進行網絡設置。

二、打開/etc/sysconfig/network文件。

修改」HOSTNAME」爲指定的節點編號。

三、打開/etc/hosts文件。

將新的ip及節點編號存入。

四、在命令窗口執行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(啓動Agent服務)。

9.3 其他datanode節點設置(除了新建的datanode節點以外的其餘datanode節點)

打開/etc/hosts文件。

將新的ip及節點編號存入。

 

9.4 主節點設置(僅主節點)

一、測試羣定ssh暢通(需新節點nN在線)

在命令窗口執行:scp ~/.ssh/authorized_keys root@nN:~/.ssh/

測試:在主節點上ssh 節點nN,正常狀況下,不須要密碼就能直接登錄進去了。

有時可能須要重啓才能聯通。

10          CDH5的安裝配置(注意中途不要中斷)

Cloudera Manager Server和Agent都啓動之後,就能夠進行CDH5的安裝配置了。

這時能夠經過瀏覽器訪問主節點的7180端口測試一下了(因爲CM Server的啓動須要花點時間,這裏可能要等待一會才能訪問),默認的用戶名和密碼均爲admin:

如下操做,須要先保證8.9的服務已所有啓動。

訪問地址:http://master:7180/cmf/login

用戶名/密碼:admin/admin

10.1       選定要安裝的節點

各個Agent節點正常啓動後,能夠在當前管理的主機列表中看到對應的節點。選擇要安裝的節點,點繼續。如圖所示:

 

10.2       集羣安裝

點擊「繼續」按鈕,若是出現以下圖所示界面,說明本地Parcel包配置無誤,直接點繼續就能夠了。

點擊,繼續,若是配置本地Parcel包無誤,那麼下圖中的已下載,應該是瞬間就完成了,而後就是耐心等待分配過程就好了,以下圖所示,大約10-20分鐘,取決於內網網速。

10.3       服務檢查

點擊「繼續」按鈕,開始服務器檢查,可能彈出以下信息「

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

」,以下圖所示

在命令窗口執行:echo 0 > /proc/sys/vm/swappiness,便可解決此文問題,點擊「返回」按鈕,以後點擊「繼續」,從新檢查便可看到結果。點擊「完成」,可進入集羣設置界面。

10.4       羣集設置-選定服務

在此選擇「全部服務」,以後點「繼續」,進入角色分配界面。

10.5       羣集設置-自定義角色分配

 

通常狀況下保持默認就能夠了(Cloudera Manager會根據機器的配置自動進行配置,若是須要特殊調整,自行進行設置就能夠了),點擊「繼續」進入數據庫設置界面。

10.6       羣集設置-數據庫設置

此刻依照第5部分所設,數據庫:「hive」,用戶名/密碼:」root/root」

10.7       羣集設置-審覈更改

保持默認。但注意,這裏安裝Hive的時候可能會報錯,由於咱們使用了MySql做爲hive的元數據存儲,hive默認沒有帶mysql的驅動,經過如下命令拷貝一個就好了:

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

點擊「重試」。最終展示以下圖所示界面

http://master:7180/cmf/clusters/2/express-add-services/index

11          CDH5安裝後,Datanode節點擴展(包括全部節點的修改)

11.1       Datanode節點nN建立(以某一個datanode節點爲模板進行)

以VMware的克隆功能生成一個節點所在的虛擬機。

11.2       新節點nN內的基本設置(僅新建的datanode節點)

一、在系統->首選項->網絡鏈接中,進行網絡設置。

二、打開/etc/sysconfig/network文件。

修改」HOSTNAME」爲指定的節點編號。

三、打開/etc/hosts文件。

將新的ip及節點編號存入。

四、清除已有受權(與9有區別)

將「/opt/cm-5.1.3/lib/cloudera-scm-agent」下的文件「uuid」刪掉。

五、在命令窗口執行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(啓動Agent服務)。

11.3       其他datanode節點設置(除了新建的datanode節點以外的其餘datanode節點)

打開/etc/hosts文件。

將新的ip及節點編號存入。

 

11.4       主節點設置(僅主節點)

一、測試羣定ssh暢通(需新節點nN在線)

在命令窗口執行:scp ~/.ssh/authorized_keys root@nN:~/.ssh/

測試:在主節點上ssh 節點nN,正常狀況下,不須要密碼就能直接登錄進去了。

有時可能須要重啓才能聯通。

11.5       在主機中設置新節點(web操做界面)

一、在主界面->主機中,選擇「向集羣添加新主機」,選擇新節點nN以後點擊「繼續」

二、選擇主機模板選擇「srit_node_model」,以下圖所示

點擊「完成」即完成配置。

12          常見問題處理

12.1       主節點下一旦刪除了/opt/cm-5.1.3/lib/cloudera-scm-agent下的uuid文件

此時,mysql驅動莫名其妙也被刪除,將會形成hive沒法啓動,此時須要在命令窗口從新執行:cp /opt/cm-5.1.3/share/cmf/lib/mysql-connector-java-5.1.38-bin.jar /opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/lib/

相關文章
相關標籤/搜索