Cloudera&CDH安裝配置說明
實驗環境
實驗環境:Win7下vmware虛擬機器
作業系統:CentOS 6.5 x64
Clouder Manager:5.14.0
CDH:5.14.0
安裝說明
官方共給出了3中安裝方式:第一種方法必須要求所有機器都能連網,由於最近各種國外的網站被牆的厲害,我嘗試了幾次各種超時錯誤,巨耽誤時間不說,一旦失敗,重灌非常痛苦。第二種方法下載很多包。第三種方法對系統侵入性最小,最大優點可實現全離線安裝,而且重灌什麼的都非常方便。後期的叢集統一包升級也非常好。這也是我之所以選擇離線安裝的原因。
相關包的下載地址
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 root@slave1.msxf.hadoop:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2.msxf.hadoop:~/.ssh/
測試:
在主節點上ssh slave1.msxf.hadoop,正常情況下,不需要密碼就能直接登陸進去了。
3. 安裝JDK(所有節點)
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 root@slave1.msxf.hadoop:/opt/
scp -r /opt/cm-5.14.0 root@slave2.msxf.hadoop:/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無需安裝,應為我們已經裝好了。
叢集安裝過程會持續比較長的一段時間,需要耐心等待。