Linux環境Cloudera CDH安裝配置徹底解決方案

Linux環境Cloudera CDH安裝配置

PS: 幾乎全網最全,介紹徹底離線和在線聯網兩種安裝方式,搭建CDH,閱此文足矣。html

1. 認識CDH

(1) CDH介紹

  • CDH是Apache Hadoop和相關項目中最完整,通過測試和最流行的發行版。
  • 由Cloudera公司發行的Hadoop版本,全稱(Cloudera’s Distribution Including Apache Hadoop)。該版本在基於原生Apache Hadoop版本進行改進,添加了補丁和自行開發的組件,更加穩定易用。是目前國內使用最多的版本。
  • 官網:www.cloudera.com/
  • 官方文檔:www.cloudera.com/documentati…
  • CDH提供了Hadoop的核心元素 :
    • 可擴展存儲和分佈式計算
    • 以及基於Web的用戶界面和重要的企業功能。
  • CDH是Apache許可的開源軟件,是惟一提供統一批處理,交互式SQL和交互式搜索以及基於角色的訪問控制的Hadoop解決方案。

(2) CDH優點

<1>. 靈活性

  • 存儲任何類型的數據並使用各類不一樣的計算框架對其進行操做,包括批處理,交互式SQL,自由文本搜索,機器學習和統計計算。

<2>. 集成

  • 在完整的Hadoop平臺上快速啓動和運行,該平臺可與各類硬件和軟件解決方案配合使用。

<3>. 安全

  • 處理和控制敏感數據。

<4>. 可擴展性

  • 支持普遍的應用程序,並擴展和擴展它們以知足您的要求。

<5>. 高可用性

  • 充滿信心地執行任務關鍵型業務任務。

<6>. 兼容性

  • 利用現有的IT基礎架構和投資。

2. 前期準備工做

  • 注意:搭建前先肯定本身的設備狀況,各節點硬盤30G以上,主節點內存6G以上,從節點內存2G以上,低配置會致使後續加載服務失敗。
    • 給一個大體的參考:
  • 這裏的準備工做是兩種安裝方式都須要提早配置好的,從裸虛擬機開始,作過相關配置略過便可。
  • 個人環境是三臺虛擬機(主節點:bigdata01;從節點:bigdata02,bigdata03),操做系統均爲CentOS7,自行根據實際狀況靈活調整。

(1) Linux配置IP(NAT模式):

  • 相關信息必須與VMnet8保持一致
  • 經過命令:vi /etc/sysconfig/network-scripts/ifcfg-(本身的名字) 進行編輯:
    • TYPE=Ethernet    
      BOOTPROTO=none    
      DEFROUTE=yes  
      IPV4_FAILURE_FATAL=no  
      IPV6INIT=yes  
        IPV6_AUTOCONF=yes  
        IPV6_DEFROUTE=yes  
        IPV6_FAILURE_FATAL=no  
        IPV6_ADDR_GEN_MODE=stable-privacy  
        NAME=ens33  
        UUID=9cbcf25a-600d-4d9c-88ad-ab509ab6e52a  
        DEVICE=ens33  
        ONBOOT=yes  
        **IPADDR=192.168.44.121  
        PREFIX=24  
        GATEWAY=192.168.44.2  
        DNS1=8.8.8.8**  
        IPV6_PEERDNS=yes  
        IPV6_PEERROUTES=yes  
        IPV6_PRIVACY=no  
      複製代碼
  • 重啓網絡服務:
    • service network restart

(2) linux關閉防火牆:

  • 查看防火牆狀態:firewall-cmd --state ->running
  • 關閉防火牆-本次有效:systemctl stop firewalld.service
  • 禁用防火牆-永久生效:systemctl disable firewalld.service ->not running

(3) 設置主機名:

  • 位置:vi /etc/hostname,輸入主機名
  • **注意:**須要重啓:reboot

(4) 設置映射:

  • 位置:vi /etc/hosts,輸入集羣所有IP和主機名
  • 格式:192.168.44.111 bigdata01

(5) 設置免密登陸:

  • 生成密鑰:ssh-keygen (三次回車鍵)
  • 拷貝到主機:ssh-copy-id 主機名 (全部節點都拷貝)

(6) 安裝jdk:

<1>. 上傳安裝包:

  • CRT:alt+p
  • winscp:拖入目錄

<2>. 解壓:

  • tar -zxvf jdkXXXXX.tar.gz -C 目標目錄

<3>. 配置環境變量:

  • 修改配置文件:
    • vi /etc/profile
  • 增長如下內容:
    • export JAVA_HOME=jdk目標目錄
    • export PATH=$PATH:$JAVA_HOME/bin
  • 聲明環境變量:
    • source /etc/profile

(7) 分發jdk到其餘節點:

<1>. 發送文件:

  • scp jdk 目標主機名:目標目錄
  • scp /etc/profile 目標主機名:目標目錄

<2>. 配置環境變量:

  • 與節點一相同

<3>. 驗證:

  • javac
  • java
  • java -version

(8) 軟鏈接jdk到CDH5:

  • 注意CDH5默認識別的jdk路徑爲:/usr/java/default這個路徑不能多也不能少,須要使CDH識別到系統安裝的jdk,採用軟鏈接方式最簡單。
  • 軟鏈接創建命令:
    • 格式:ln -s sourcedir sinkdir
    • ln -s /jdk安裝位置/* usr/java/default/

(9) MySQL數據庫(主節點安裝便可)

<1>. Linux安裝MySQL:

<2>. 建立相關數據庫:

  • Hive的元數據庫:
    • mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • Cloudera的元數據庫:
    • mysql>create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

<3>. 開啓遠程訪問:

  • 選擇mysql庫:
    • mysql>use mysql;
  • 建立CDH默認使用mysql用戶scm:
    • mysql>CREATE USER 'scm'@'%' IDENTIFIED BY 'scm';
  • 賦予scm用戶全部權限:
    • mysql>GRANT ALL PRIVILEGES ON *.* TO scm@"%" IDENTIFIED BY "scm";
  • 刷新權限:
    • mysql>flush privileges;

(10) 增長開機自啓項:(避免後續提示警告)

  • 當前開啓:
    • echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
    • echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
  • 添加配置文件:
    • vi /etc/rc.local
      • echo 0 >  /proc/sys/vm/swappiness
          echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
          echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
          swapoff -a
        複製代碼
      複製代碼
  • 分發給其餘節點:
    • scp /etc/rc.local bigdata02:$PWD
    • scp /etc/rc.local bigdata03:$PWD

(11) 安裝時鐘服務NTP:(CDH要求各個節點時間同步)

  • 時鐘服務器安裝在主節點上,子節點的時鐘服服務所有同步到主節點的時鐘服務器上。java

  • 安裝時鐘服務ntp:mysql

    • yum -y install ntp
  • 啓動ntp並註冊到開機自啓:linux

    • service ntpd start
    • chkconfig ntpd on
  • 查看ntpd的狀態:sql

    • service ntpd status
  • 配置時鐘服務器:shell

    • vi /etc/ntp.conf
      • 修改前:
      • 修改後:
  • 重啓ntp服務:數據庫

    • service ntpd restart

(12) 安裝perl:

  • yum install -y perl

3. CDH-5.14.0 在線安裝配置流程

  • 操做相對容易,適用於本地測試和有網環境生產搭建。

(1) 相關下載地址:

(2) 解壓Clouder Manager到目標目錄下:

  • **特別注意:**爲了後續方便和避免引發沒必要要的麻煩,務必建立目錄/opt/cloudera-manager/opt/cloudera/parcel-repo
  • tar -zxvf .tar.gz -C /opt/cloudera-manager

(3) 建立用戶cloudera-scm:

  • 因爲Cloudera Manager和Managed Services默認使用cloudera-scm,因此須要建立此用戶。
  • 建立用戶:
    • useradd --system --home=/opt/cloudera-manager/cm-5.14.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 修改用戶密碼:
    • passwd cloudera-scm

(4) 主節點建立Cloudera Manager服務本地數據存儲目錄:

  • mkdir /var/lib/cloudera-scm-server
  • chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server

(5) 配置Agent:

  • 配置全部節點的Agent
  • vi /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-agent/config.ini
  • 將server_host修改爲主節點的主機名(必定不能是IP地址),若是主節點端口沒有自定義,則不用修改。

(6) 配置mysql-connector-java.jar:

  • 下載地址(mysql5+):
  • 保存到全部主機的/usr/share/java目錄下(目錄不存在則新建)
  • 重命名:
    • 很關鍵一步,不修改CDH則不識別
    • mv mysql-connector-java-5.1.46.jar mysql-connector-java.jar

(7) 初始化cloudera manager:

  • /opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql scm scm scm
  • 操做成功提示:
    • [                          main] DbCommandExecutor              INFO  Successfully connected to database.
      All done, your SCM database is configured correctly!
      複製代碼
  • 這裏報錯的話是以前mysql的scm用戶設置問題,各位自行排查。

(8) 配置CDH安裝包:

  • 安裝包:
    • CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel
    • CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1
    • manifest.json
  • 將安裝包移動主節點/opt/cloudera/parcel-repo目錄下
    • /opt/cloudera/parcel-repo目錄是CDH自動識別的目錄
  • 重命名:
    • mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha
    • .sha1不識別,不重命名會從新下載sha文件。

(9) 啓動主節點的CM Server和全部節點的Agent:

  • 路徑爲:/opt/cloudera-manager/cm-5.14.1/etc/init.d
  • ./cloudera-scm-server start
  • ./cloudera-scm-agent start

(10) 打開CM管理頁面

(11) 選擇Cloudera Express:

  • 選擇免費。

(12) 選擇主機:

  • 在「當前管理的主機」選項卡下,勾選全部節點。

(13) 羣集安裝:

  • 選擇存儲庫:

(14) 安裝完成後,檢查主機正確性:

  • 轉「5. 安裝後續」

4. CDH-5.14.0 離線安裝配置流程

  • 操做複雜,適用於高安全性無網環境生產搭建。

(1) 搭建私有網絡軟件倉庫:

  • 在集羣安裝的過程當中,要求每一個節點都必須掛載光驅, 而對於每臺節點都手動的去掛載光驅太麻煩,也不方便。這裏使用每一個節點都指向同一個私有網絡鏡像來解決這個問題。
  • 集羣採用的是全離線安裝,也不可能逐個節點的安裝,一樣是也使用指向同一個私有的網絡軟件包來解決。
  • 所以選擇在bigdata01上搭建一個私有的網絡軟件倉庫,如下是搭建的全過程:

<1>. 上傳鏡像:

  • 搭建私有網絡鏡像使用的鏡像文件最好就使用安裝系統的鏡像,這裏是選擇了CentOS6.7x64的鏡像,將其上傳到hadoop-4的/disk下(需新建/disk目錄)。
  • 若遇到上傳文件限制沒法上傳,則壓縮成.zip文件上傳,以後解壓。

<2>. 掛載鏡像

  • 建立文件夾:
    • mkdir -p /media/CentOS
  • 掛載鏡像:
    • mount -o loop /disk/CentOS-6.7-x86_64-bin-DVD1.iso /media/CentOS/
  • 修改CentOS-Base.repo:
    • 進入目錄:cd /etc/yum.repos.d
    • mv CentOS-Base.repo CentOS-Base.repo.bak
  • 修改CentOS-Media.repo文件:
    • vim CentOS-Media.repo
    • enable=0改爲enable=1
  • 清除yum的緩存:
    • yum clean metadata
    • yum clean dbcache
  • 查看是否掛載成功:
    • yum list | wc -l
    • 這是統計鏡像中有多少個軟件包的命令,CentOS6.7x64位的系統的軟件包個數通常在3000以上。

<3>. 安裝http:

  • 已經安裝能夠省略,只需啓動便可(通常最小化安裝不會安裝此服務)
  • 安裝命令:yum -y install httpd
  • 啓動http服務:service httpd start或者/bin/systemctl start httpd.service
  • 設置開機自啓:chkconfig httpd on
  • 經過瀏覽器測試:
    • 輸入:http://bigdata01:80
    • 出現相似以下界面說明http啓動成功:

<4>. 安裝createrepo

  • 用來生成http鏡像的網絡識別路徑。
  • 安裝:
    • yum –y install createrepo

(2) 掛載網絡系統鏡像:

<1>. 建立網絡系統鏡像:

  • 從鏡像中掛載的文件拷貝到軟件倉庫的目錄中:
    • cp -r /media/CentOS 目標目錄
  • 刪除目錄repodata:
    • cd /目標目錄/CentOS
    • rm -rf ./repodata
  • 生成新的軟件路徑目錄repodata:

<2>. 使用網絡系統鏡像:

  • 解除對鏡像文件的掛載:json

    • umount /media/CentOS
  • /media/CentOS下無文件則說明解除掛載成功。vim

  • 若出現: centos

    • 說明有進程在佔用掛載點,出現這種狀況,表示還有進程在使用/medis/CentOS掛載點,那麼此時能夠藉助fuser命令找出佔用目錄/medis/CentOS的全部進程,而後kill掉,此時就能夠umount了。
  • 修改文件CentOS-Media.repo讓其指向剛纔建立的網絡鏡像:

    • vi /etc/yum.repos.d/CentOS-Media.repo
  • 清除yum的緩存:

    • yum clean metadata
    • yum clean dbcache
  • 查看是否掛載成功:

    • yum list | wc -l

<3>. 成功:

  • 到此bigdata01網絡系統鏡像掛載完成,能夠刪除鏡像文件。

(3) 建立CM和CDH網絡軟件鏡像:

<1>. 建立CM網絡軟件鏡像:

<2>. 建立CDH網絡鏡像:

  • CDH下載地址:

<3>. 子節點掛載網絡鏡像

  • 將主節點的/etc/ yum.repos.d下的CentOS-Media.repo文件分發到各子節點的目錄:

    • scp -r /etc/yum.repos.d/CentOS-Media.repo bigdata02:$PWD
    • scp -r /etc/yum.repos.d/CentOS-Media.repo bigdata03:$PWD
  • 在全部子節點執行以下命令:

    • mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  • <4>. 子節點掛載網絡鏡像

    • 將主節點/etc/ yum.repos.d下的CentOS-Media.repo文件分發到各子節點的目錄/etc/ yum.repos.d下:
      • scp -r /etc/yum.repos.d/CentOS-Media.repo bigdata02:/etc/yum.repos.d/
      • scp -r /etc/yum.repos.d/CentOS-Media.repo bigdata03:/etc/yum.repos.d/
    • 在全部子節點執行以下命令:
      • mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    • 清除yum的緩存:
      • yum clean metadata
      • yum clean dbcache
    • 查看是否掛載成功:
      • yum list | wc -l
      • 這是統計鏡像中有多少個軟件包的命令,CentOS6.7x64位的系統的軟件包個數通常在3000以上。

(4) CM安裝:

  • 以前只是創建了CM的網絡軟件鏡像,可是並無讓系統識別,如今開始一步步安裝CM。
  • 因爲CM只要安裝在主節點bigdata01上,如下操做僅在bigdata01上執行。

<1>. 配置CM的yum源

  • 找到CM網絡鏡像中拷貝cloudera-cm.repo
    • 存在於cm的壓縮包中,能夠從壓縮包中直接解壓。
  • 拷貝cloudera-cm.repo/etc/yum.repos.d/目錄下:
    • cp /opt/module/cm-5.14/cloudera-manager.repo /etc/yum.repos.d/
  • 進入目錄/etc/yum.repos.d/:
    • cd /etc/yum.repos.d/
  • 修改cloudera-cm.repo:
    • vi cloudera-cm.repo
    • baseurl=http://bigdata01/cm5.14
    • gpgkey=http://bigdata01/cm5.14/RPM-GPG-KEY-cloudera
    • 必定要注意和cm的網絡軟件鏡像相對應。
  • 修改cloudera-cm.repo:
    • cp cloudera-cm.repo cloudera-manager.repo

<2>. 安裝CM

  • 下載CM安裝的引導文件——cloudera-manager-installer.bin:

  • 將其上傳到/opt下:

  • 上傳的cloudera-manager-installer.bin文件並無執行權限,賦予其執行權限:

    • chmod 755 cloudera-manager-installer.bin
  • 執行安裝:

    • ./opt/cloudera-manager-installer.bin
    • 安裝提示進行便可,出現下面界面即安裝成功:
  • 查看cloudera的服務是否啓動:

    • ./cloudera-scm-server start
  • 經過瀏覽器訪問cm的頁面控制檯:

    • http://bigdata01:7180
    • 7180是默認端口,若衝突修改流程以下:
      • 登陸主節點MySQL
      • mysql>use scm
      • 查看默認端口:
        • mysql>select * from CONFIGS where ATTR='http_port';
      • 修改端口:
        • update CONFIGS set VALUE='XXXX' where ATTR='http_port';
      • 重啓服務器:
        • ./cloudera-scm-server start restart
      • 初始用戶名密碼均爲admin,(可自行修改)登陸後進行cdh集羣安界面。

(5) CDH集羣安裝:

  • 接下來就經過瀏覽器界面來執行CDH集羣安裝。

<1>. 選擇子節點

  • 在登陸了後,進入的第一個界面是cloudera的最終用戶許可條款和條件:

  • 勾選是的,再點繼續,進入CDH版本選擇界面:

  • 這裏選擇免費版, 再點擊繼續,進行感謝界面:

  • 直接點擊繼續,進入了節點選擇界面:

  • 在這個界面咱們須要填入,咱們集羣的全部節點主機名(可從任意節點的hosts文件中拷貝。),以英文逗號分隔,填完了後點擊搜索。

<2>. CDH和CM的具體網絡位置的選擇

  • 在確認主機無誤後,點擊繼續,就能夠進入CDH和CM的網絡位置選擇界面。

  • a. 選擇CDH的位置:

    • 先點擊 更多選項,進入CDH網絡位置選擇界面:

    • 修改爲咱們本身的CDH網絡軟件鏡像的地址,多餘的刪掉。

    • 點擊保存更改,這時CDH和CM的網絡位置選擇界面變爲:

    • 選擇CDH版本就完成了,接下來選擇CM。

  • b. 選擇CM的位置

    • 在選擇了CDH後,咱們繼續點擊 自定義存儲庫 來選擇咱們本身的CM:

    • 就是把配置cloudera-cm.repo的配置拿出來,在界面上填一遍,咱們的填寫以下:

    • 填寫完成後,就會進入給每一個節點安裝cloudera-scm-agent的界面,再點擊繼續前,咱們須要將hadoop-cm中安裝CM時安裝的JDK文件分發到每一個子節點,否則子節點在安裝cloudera-scm-agent會包錯。

<3>. Agent的安裝和配置

  • 點擊繼續,進入jdk安裝選項:

  • 這個就不須要勾選,直接點擊繼續,進入選擇是否啓動單用戶模式:

  • 選擇不啓用,直接點擊繼續,進入節點通訊選擇:

  • 這裏使用 全部用戶接收相同的密碼:

  • 填入密碼後,點擊繼續,進行agent安裝界面, 耐心等待安裝完成。安裝完成後,點擊繼續,進入CDH包分發到agent的界面,耐心等待其完成。分發爲完成後,點擊繼續,進入agent主機檢查:

    • 轉「5. 安裝後續」

5. 安裝後續

(1) agent主機檢查

  • 須要將全部警告都解決才能點擊繼續,否則安裝可能會報錯。

  • 大機率出現的警告爲:

    • a. Cloudera 建議將 /proc/sys/vm/swappiness 設置爲最大值 10。當前設置爲 30。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf,以在重啓後保存該設置。您能夠繼續進行安裝,但 Cloudera Manager 可能會報告您的主機因爲交換而運行情況不良。 - 解決方案:
      • sysctl vm.swappiness=10
      • cat /proc/sys/vm/swappiness
      • 加入配置文件永久修改:
        • 在/etc/sysctl.conf 文件裏添加以下參數:
          • vm.swappiness=10
    • b. 已啓用透明大頁面壓縮,可能會致使重大性能問題。請運行「echo never > /sys/kernel/mm/transparent_hugepage/defrag」和「echo never > /sys/kernel/mm/transparent_hugepage/enabled」以禁用此設置。
      • 解決方案:
        • echo never > /sys/kernel/mm/transparent_hugepage/defrag
        • echo never > /sys/kernel/mm/transparent_hugepage/enabled
        • vi /etc/rc.local
        • 添加:
          • echo never > /sys/kernel/mm/transparent_hugepage/defrag
          • echo never > /sys/kernel/mm/transparent_hugepage/enabled

(2) CDH服務選擇

  • 安裝和配置完Agent後,就會進入CDH服務選擇界面:

  • 選擇自定義服務,勾選以下:

  • 點擊繼續,進入服務安裝細節界面:

(3) 配置元數據庫爲Mysql

在選擇完服務後,點擊繼續就能夠進入數據庫選擇界面,這裏選擇mysql,注意用戶名和密碼,這裏須要填如Mysql中支持遠程鏈接的用戶名和密碼,點擊測試鏈接:

(4) 集羣服務配置

<1>. HDFS DataNode地址配置

<2>. HDFS NameNode地址配置

<3>. 1.1.3 HDFS SNameNode地址配置

<4>. Yarn NodeManager的地址配置

  • 其餘的均不須要調整,配置完後點擊繼續,進入安裝界面。

(5) CDH集羣安裝

  • 在選擇完集羣服務配置後,就會進行運行安裝界面。

  • 可能報錯:

    • 緣由:
      • jdk未找到
      • 內存不足
    • 緣由:perl未安裝
  • 完成後,點擊繼續,集羣cm集羣控制界面,

相關文章
相關標籤/搜索