Centos6.5 離線搭建CDH5.11

需要的前期準備:

  • 離線包

         CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel

         CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel.sha1

         manifest.json

         地址:https://pan.baidu.com/s/11OhAYZnPDog_LNGsANcw0A 密碼:hjdq

  • JDBC驅動包:

         mysql-connector-java-5.1.38-bin.jar  

         地址:https://pan.baidu.com/s/1RGL5_HBvGoqk3nZHK1UJ1Q 密碼:tloj 

         這裏用的jdbc驅動版本是:mysql-connector-java-5.1.38-bin.jar  

     

一,環境搭建

  1. 硬件軟件要求
    我這3臺機器node1,node2,node3,node4,node5 作爲主節點  node5。配置:16g內存,8核,如果是自己虛擬機的話master至少8g,因爲裝完集羣(裝了8個應用組件)node5的內存已用了7g多。(CDH是比較吃內存和硬盤的)
  2. centos6.5  地址:https://pan.baidu.com/s/1OTAPpvni_JtTfKFiPTueQQ 密碼:dlsd
  3. 網絡配置(所有節點)
     1.vi /etc/sysconfig/network修改hostname :
        NETWORKING=yes
        HOSTNAME=node5
       通過service network restart重啓網絡服務生效
     2.  vi /etc/hosts,修改ip與主機名的對應關係
       192.168.0.179 node1
       192.168.0.178 node2
       192.168.0.177 node3
       192.168.0.176 node4
       192.168.0.175 node5

              4.設置SSH無密碼訪問(所有節點)

             我這邊寫了一個腳本,執行起來省去了很多問題,連接發給大家

             鏈接:https://pan.baidu.com/s/1Gmxs3oY01zyAXB-U32c9pg 密碼:iwn6

             

            文件包括

             1ssh_auth.sh  建立互信的腳本

             3scp.sh   傳輸文件的腳本

             all.sh       傳輸文件的腳本

             hostname  配置文件(通信的各個主機名)

             hostnames 配置文件 (通信的各個主機名)

            大家可以打開文件自己看一下上面的操作

          

         建立互信後可以進行測試 ssh + 主機名 看是否進行免密登錄

         

         

         

        5.安裝Oracle Java(所有節點)

          Centos6.5可能自帶OpenJDK,但運行CDH5需要使用Oracle的JDK,我這邊用的是 jdk-8u111-linux-x64.tar.gz

           鏈接:https://pan.baidu.com/s/12Ez6CVjn_gG2DYRx_qLOXw 密碼:eoca

          卸載自帶的OpenJDK** 使用下述命令查詢相關的java包
          rpm -qa | grep java
          使用-e選項填入包名卸載
          rpm -e --nodeps packageName

          安裝oracle jdk 配置環境變量/etc/profile.再source使起生效這裏不在這邊詳細說明

       6.安裝配置MySQL(主節點)

           我這邊用的是二進制安裝mysql的方法進行安裝部署,部署安裝教程地址: https://www.cnblogs.com/wcwen1990/p/6655271.html
           這裏是mysql的安裝包:
           地址:https://pan.baidu.com/s/1VgmiGLZlHtDStGU7mQMVJA 密碼:2wcx
           mysql -uroot -p進入mysql命令行,創建以下數據庫:
           #爲hive建庫hive
           create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          #activity monitor
           create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
           #爲oozie建庫oozie
          create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          #爲hue建庫hue
           create database hue  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          設置root授權訪問以上所有的數據庫:
         #授權root用戶在主節點擁有所有數據庫的訪問權限
          grant all privileges on *.* to 'root'@'master' identified by 'root' with grant option;
          flush privileges;

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

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

    關閉防火牆:

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

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

    setenforce 0 (臨時生效)  
    修改 /etc/selinux/config 下的 SELINUX=disabled (重啓後永久生效)
  2. 配置NTP服務(所有節點) 

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

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

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

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

    主節點配置

    在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裏選用103.226.213.30作爲對時中心,ntpdate -u 103.226.213.30。  
    下面是國內最活躍的時間服務器地址:
    server 0.cn.pool.ntp.org 
    server 0.asia.pool.ntp.org 
    server 3.asia.pool.ntp.org 
    server 0.centos.pool.ntp.org iburst 
    server 1.centos.pool.ntp.org iburst 
    server 2.centos.pool.ntp.org iburst 
    server 3.centos.pool.ntp.org iburst

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

    driftfile /var/lib/ntp/drift

    restrict 127.0.0.1

    restrict -6 ::1

    restrict default nomodify notrap

    server 103.226.213.30 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客戶端(所有子節點) 

    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 notrap nopeer noquery

    #這裏是主節點的主機名或者ip

    server node5

    includefile /etc/ntp/crypto/pw

    keys /etc/ntp/keys

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

    這裏可能出現同步失敗的情況,請不要着急,一般是本地的ntp服務器還沒有正常啓動,一般需要等待5-10分鐘纔可以正常同步。啓動服務:service ntpd start 

    因爲是連接內網,這次啓動等待的時間會比master節點快一些,但是也需要耐心等待一會兒

             

二,Cloudera Manager安裝與集羣配置

 在上節已將環境配置完成。下面開始安裝CM和搭建集羣。

1,主節點安裝CM  

解壓:tar xzvf cloudera-manager*.tar.gz將解壓後的cm-5.9和cloudera目錄放到/opt目錄下。 

建立數據庫:將下載好的mysql-connector-java-5.1.17.jar放到/opt/cm-5.11.0/share/cmf/lib/

初始化數據庫: /opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode5 -uroot -p123456 --scm-host node5 scm scm scm 

參數分別是:數據庫類型 數據庫名稱 -h數據庫主機名 -u數據庫用戶名 -p數據庫密碼--scm-host cmserver主機名 scm scm scm

2.agent配置 

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

同步Agent到其他所有節點: scp -r /opt/cm-5.11.0 root@node2:/opt/

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

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

3.準備Parcels,用以安裝CDH5 

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

相關的文件如下: 

             - CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel

              -CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha1

          -manifest.json 

最後將CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha1,重命名爲CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel文件。

相關啓動腳本

主節點:通過/opt/cm-5.11.1/etc/init.d/cloudera-scm-server start啓動服務端。

所有節點(包括主節點):通過/opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start啓動Agent服務。

我們啓動的其實是個service腳本,需要停止服務將以上的start參數改爲stop就可以了,重啓是restart。

 4,CDH5安裝配置 

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

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

                  

 

 可以看到,免費版本的CM5已經沒有原來50個節點數量的限制了。下面這圖我安裝好了就沒剪切,用別人的圖

 

 

 

 

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

 

 

 

 繼續,如果配置本地Parcel包無誤,那麼下圖中的已下載,應該是瞬間就完成了,然後就是耐心等待分配過程就行了,這個過程的速度就取決於節點之間的傳輸速度。

 

 

當前受管:假如在安裝的時候出現問題,如網絡連接中斷,機器死機,繼續安裝的時候可能會出現查詢不到機器,並且根據ip搜索機器的時候,出現“當前受管”的狀態爲“是”,安裝失敗的機器不能再選擇了。 
這裏寫圖片描述

這裏寫圖片描述 

 至此,所有節點部署完成

 

 下一步主機檢查,遇到以下問題: 

 

 

 

       第一個警告:

 Cloudera 建議將 /proc/sys/vm/swappiness 設置爲 10。當前設置爲 60。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf 以在重啓後保存該設置。 

 echo 10 > /proc/sys/vm/swappiness

這樣操作重啓機器還是還原,要永久改變

vim   /etc/sysctl.conf
vm.swappiness=10
 

 第二個警告,提示執行命令:

 echo never > /sys/kernel/mm/transparent_hugepage/defrag

 echo never > /sys/kernel/mm/transparent_hugepage/enabled

執行完畢,重啓後,警告依然,暫時不處理

 

安裝服務

 

 

 注意:這裏開始,所有的服務,既可以通過下述自助來安裝一系列服務;也可以手動在CM管理頁面一個一個添加

 之前安裝時選擇一次性安裝一系列服務,由於沒有新建hue數據庫導致hue服務安裝不上,所以後面選擇一個一個安裝,在前期搭建環境時這樣更好,起碼出現問題可以鎖定是哪個服務。

 

分步安裝服務步驟爲:

點擊頁面上Cloudera MANAGER,回到主節點頁面

這裏寫圖片描述

出現cluster1羣集1,點擊下拉,選擇“添加服務” 
這裏寫圖片描述

這裏寫圖片描述
HDFS,Hive, HUE,Oozie, YARN, ZOOKEEPER是核心Hadoop的幾個服務,分別安裝,由於這些節點存在依賴關係,需注意先後順序(當然,安裝時CM會警告),順序是: 
Zookeeper, hdfs, yarn, hive, oozie, hue

注意:在安裝hive, hue和oozie時,要將MySQL驅動jar拷貝到相應位置

 cp /home/hadoop/mysql-connector-java-5.1.38.jar  /opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.34/lib/hive/lib

 cp /home/hadoop/mysql-connector-java-5.1.38.jar  /var/lib/oozie
 
按需安裝完服務後,可在集羣界面(即Cloudera MANAGER)看一下集羣的狀況 !

查看日誌

CM雖然配置麻煩,但日誌齊全,每個操作,都能找到相應的運行日誌,日誌對於配合、調試和查看任務進度都有很大的幫助

 

 

Q&A

hdfs
1,Hadoop Datanode節點無法啓動(All directories in dfs.data.dir are invalid)
這是data目錄沒有權限
解決:chmod -R 777 dfs
2.執行 hadoop jar時候  輸出目錄可能需要手動添加和設置權限,否則執行時候會提示
NFS service is already running on this host. Please stop the NFS service running on this host before attempting to start the NFS Gateway role
解決:
service nfs stop
service nfs status
3.Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
權限問題,需要修改目標操作的權限,或者修改操作的用戶。
可以用 hdfs dfs -ls /     查看各個目錄的所屬用戶
解決:如果目錄或文件所屬用戶不對,需要修改: hdfs dfs -chown -R  user:group   目標文件
 
hive
1,Version information not found 
解決:
打開頁面>hive.metastore.schema.verification 設置爲false 去掉勾選
2,javax.jdo.JDODataStoreException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
解決:
打開頁面>datanucleus.autoCreateSchema 設置爲true就是勾選就可以
 
hue 
1,Unexpected error. Unable to verify database connection
 查看日誌報錯是:ImportError: libxslt.so.1: cannot open shared object file: No such file or directory
原因是centos缺少庫文件,執行如下命令即可
解決:
yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel
 

參考:

    

   https://blog.csdn.net/lichangzai/article/details/51564701

    https://www.cnblogs.com/codedevelop/p/6762555.html

    https://blog.csdn.net/yizheyouye/article/details/53173912

    https://blog.csdn.net/qq_37667074/article/details/78731529


























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