1. 程式人生 > >Cloudera&CDH安裝配置說明

Cloudera&CDH安裝配置說明

實驗環境

實驗環境:Win7下vmware虛擬機器
作業系統:CentOS 6.5 x64
Clouder Manager:5.14.0
CDH:5.14.0

安裝說明

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

相關包的下載地址

Cloudera Manager下載地址:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz

CDH安裝包地址:
http://archive.cloudera.com/cdh5/parcels/latest/
由於我們的作業系統為CentOS6.5,需要下載以下檔案:
CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1
manifest.json

系統規劃

準備3個節點,一個master節點,二個slave節點。
master:1核3G ;192.168.86.129; master.msxf.hadoop
slave1:1核2G; 192.168.86.130; slave1.maxf.hadoop
slave2:1核2G; 192.168.86.131; slave2.msxf.hadoop

準備工作:系統環境搭建

以下操作均用root使用者操作。

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

a)修改hostname

vim /etc/sysconfig/network

這裡寫圖片描述

重啟作業系統生效

reboot

b)配置hosts

vim /etc/hosts

新增ip和主機名對映

192.168.86.129 master.msxf.hadoop
192.168.86.130 slave1.msxf.hadoop
192.168.86.131 slave2.msxf.hadoop

這裡寫圖片描述

2.SSH免密登入(所有節點)

在主節點上執行ssh-keygen -t rsa

一路回車,生成無密碼的金鑰對。
將公鑰新增到認證檔案中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,並設定authorized_keys的訪問許可權:chmod 600 ~/.ssh/authorized_keys

這裡寫圖片描述

在兩個slave節點上執行ssh-keygen -t rsa一路回車,生成無密碼的金鑰對,並生成.ssh目錄,用於認證檔案authorized_keys的同步。
scp檔案到所有slave節點:

scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/

測試:
在主節點上ssh slave1.msxf.hadoop,正常情況下,不需要密碼就能直接登陸進去了。

這裡寫圖片描述

3. 安裝JDK(所有節點)

一般情況下,我們都要將linux自帶的OPENJDK解除安裝掉,然後安裝SUN的JDK。
由於我的CentOS安裝的是mini版本的,沒有自帶jdk所以可以直接安裝。
從Oracle官網下載JDK安裝包:
http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1517808422_bdd9ddc0a30c84fe1961a9a2f6f1eb63
我下載的是JDK8的最新版本:jdk-8u161-linux-x64.tar.gz
下面是JDK的配置步驟。
在/usr目錄下建立目錄/java,

cd /usr
mkdir java

把JDK安裝包上傳到/usr/java目錄,解壓JDK安裝包,

tar -zxvf jdk-8u161-linux-x64.tar.gz

配置環境變數

vim /etc/profile

/etc/profile中新增下面配置項

JAVA_HOME=/usr/java/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

這裡寫圖片描述
重新整理環境變數使配置立即生效

source /etc/profile

檢查JDK是否配置成功

java -version

這裡寫圖片描述

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

通過yum install mysql-server安裝mysql伺服器。chkconfig mysqld on設定開機啟動,並service mysqld start啟動mysql服務,並根據提示設定root的初試密碼:mysqladmin -u root password 'xxxx'
mysql -uroot -pxxxx進入mysql命令列,建立以下資料庫:

#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

設定root授權訪問以上所有的資料庫:

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

5. 關閉防火牆和SELinux(所有節點)

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

service iptables stop (臨時關閉)  
chkconfig iptables off (重啟後生效)

關閉SELINUX:

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

6. 配置NTP服務(所有節點)

叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。
具體思路如下:
master節點作為ntp伺服器與外界對時中心同步時間,隨後對所有slave節點提供時間同步服務。所有slave節點以master節點為基礎同步時間。所有節點安裝相關元件:yum install ntp。完成後,配置開機啟動:chkconfig ntpd on,檢查是否設定成功:chkconfig --list ntpd其中2-5為on狀態就代表成功。

主節點配置

在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裡選用0.asia.pool.ntp.org作為對時中心,ntpdate 0.asia.pool.ntp.org
ntp服務只有一個配置檔案(/etc/ntp.conf),配置好了就OK。 這裡只給出有用的配置,不需要的配置都用#注掉,這裡就不在給出:

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
server 0.asia.pool.ntp.org prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置檔案完成,儲存退出,啟動服務,執行如下命令:service ntpd start
檢查是否成功,用ntpstat命令檢視同步狀態,出現以下狀態代表啟動成功:
這裡寫圖片描述
如果出現異常請等待幾分鐘,一般等待5-10分鐘才能同步。

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

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
server master.msxf.hadoop
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

儲存退出,請求伺服器前,請先使用ntpdate手動同步一下時間:

ntpdate -u master.msxf.hadoop (主節點ntp伺服器)

啟動服務:

service ntpd start

ClouderaManager安裝

安裝Cloudera Manager Server 和Agent

主節點解壓安裝

cloudera manager的目錄預設位置在/opt下,解壓:tar xzvf cloudera-manager*.tar.gz將解壓後的cm-5.14.0和cloudera目錄放到/opt目錄下。
這裡寫圖片描述

為Cloudera Manager 5建立資料庫

首先需要去MySql的官網下載JDBC驅動,http://dev.mysql.com/downloads/connector/j/,解壓後,找到mysql-connector-java-5.1.45-bin.jar,放到/opt/cm-5.14.0/share/cmf/lib/中。
設定mysql jar許可權

chmod 777 mysql-connector-java-5.1.45-bin.jar

在主節點初始化CM5的資料庫:

/opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

Agent配置

修改/opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。
這裡寫圖片描述
同步Agent到其他節點

scp -r /opt/cm-5.14.0 [email protected]:/opt/
scp -r /opt/cm-5.14.0 [email protected]:/opt/

在所有節點建立cloudera-scm使用者

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

準備Parcels,用以安裝CDH5

將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中。
相關的檔案如下:

  • CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
  • CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1
  • manifest.json

最後將CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1,重新命名為CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel檔案。

相關啟動指令碼

啟動服務端

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

啟動Agent服務

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

這裡寫圖片描述

CDH5的安裝配置

Cloudera Manager Server和Agent都啟動以後,就可以進行CDH5的安裝配置了。
這時可以通過瀏覽器訪問主節點的7180埠測試一下了(由於CM Server的啟動需要花點時間,這裡可能要等待一會才能訪問),預設的使用者名稱和密碼均為admin。
http://master.msxf.hadoop:7180
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

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

這裡寫圖片描述

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

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

叢集安裝過程會持續比較長的一段時間,需要耐心等待。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述