centos7.5搭建cdh5.13.0

序言html

本文集羣搭建爲三臺機器,cdh版本爲5.13.0,如下是安裝過程當中所用到的軟件包等,能夠自行下載。
1、前期準備
1.安裝環境前端

  •  系統:centos7.5/最小安裝版本/64位
  •  內存:主節點 --> 32G/從節點 --> 16G
  • 三臺機器組成小集羣(物理機)
    • cdh01
    • cdh02
    • cdh03
  • 須要下載的安裝包
    •  cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz
    • CDH相關(注意下載相應系統的安裝包)
      • CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel
      • CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1
      • manifest.json(manifest.json須要網頁上打開後複製所有內容,在桌面新建txt文件,粘貼複製的內容後修改後綴名爲.json)
    • jdk-8u144-linux-x64.tar.gz
    • mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
    • mysql-connector-java-5.1.47.tar

2、環境配置
注意:全部操做都須要使用root權限操做java

  • 修改hosts(三臺)
    •  vi /etc/hosts
    • 10.81.22.184 cdh01
      10.81.22.188 cdh02
      10.81.22.189 cdh03
    • 注:修改 /etc/hosts,此處必定要注意,不要按照網上有的說明,將127.0.0.1那一行裏的localhost.localdomain改爲主機名稱,在安裝Cloudera Agent的時候會識別不出名稱和IP
  • 修改主機名
    • vim /etc/sysconfig/network
    • NETWORKING=yes
      HOSTNAME=cdh01    
  • 修改selinux
    • vi /etc/selinux/config
    • 將selinux的值修改爲disabled
      SELINUX=disabled
  • 關閉防火牆
    • systemctl stop firewalld
    • systemctl disable firewalld
    • systemctl status firewalld
  • 三臺機器設置免密登錄,打通ssh
    • 思路:第一臺機器配置authorized_keys,scp到第二臺機器,將第二臺機器的公鑰添加到authorized_keys,而後將其scp到第三臺,以此類推,直到配置到最後一臺機器,將最後一臺機器的authorized_keys scp到全部節點,以下(見1)
  • 安裝ntp時間同步
    • 集羣中全部主機必須保持時間同步,若是時間相差較大會引發各類問題。具體思路以下:
      主節點做爲NTP服務器與外界對時中心同步時間,隨後對全部數據節點節點提供時間同步服務。
      全部數據節點節點以主節點爲基礎同步時間全部節點安裝相關組件執行如下命令:
    • yum install -y ntp #安裝ntp服務(全部節點)
    • vim /etc/ntp.conf
      • 主節點
      • driftfile /var/lib/ntp/drift
        
        restrict 127.0.0.1
        restrict -6 ::1
        # 容許內網其餘機器同步時間
        restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
        
        # 中國這邊最活躍的時間服務器 : http://www.pool.ntp.org/zone/cn
        
        server 210.72.145.44 perfer # 中國國家受時中心
        server 202.112.10.36 # 1.cn.pool.ntp.org
        server 59.124.196.83 # 0.asia.pool.ntp.org
        
        # 容許上層時間服務器主動修改本機時間
        restrict 210.72.145.44 nomodify notrap noquery
        restrict 202.112.10.36 nomodify notrap noquery
        restrict 59.124.196.83 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
        
        #只保留以上內容其餘所有註釋掉
      • 從節點
      • 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 cdh01 #改爲本身的主節點名稱
        restrict 192.168.1.135 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
        
        #只保留以上內容其餘所有註釋掉
  • 設置開機啓動ntp服務
    • 關閉chronyd服務
      • systemctl disable chronyd.service
    • 開機自啓動
      • systemctl enable ntpd.service
  • 開啓ntp服務
    • systemctl start ntpd 
  • 查看ntp運行狀態
    • ntpstat
    • 出現即爲同步成功
  • 安裝jdk(全部節點)
    • 卸載Centos 系統自帶的JDK並從新安裝oracle的JDK(全部節點)
    • CentOS,自帶OpenJdk,不過運行CDH5須要使用Oracle的Jdk,須要Java 7的支持。
      • 卸載自帶的OpenJDK的使用如下代碼查詢的Java相關的包 - rpm -qa | grep java
    • rpm -qa | grep jdk - yum -y remove xxjdk #刪除全部的jdk
    • yum remove -y *jdk*
    • yum remove -y *java*
    • JDK 能夠去官網下載 下載地址:
      http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
      (本次使用的是jdk-8u191-linux-x64.rpm)
    • rpm -ivh jdk-8u202-linux-x64.rpm
    • 因爲是RPM包並不須要咱們來配置環境變量,咱們只須要配置一個全局的JAVA_HOME變量便可,執行命令:
      • echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
  • 主節點安裝mysql
    • 卸載mariadb
      • 此處須要注意的是centos 7 默認安裝的是mariadb,若是不卸載直接安裝的話會報錯,報錯信息mariadb-libs is obsoleted by mysql-community-libs-5.7.21-1.el7.x86_64
      • 注意:必須先作一下步驟,要先刪除mariadb
    • rpm -qa | grep mariadb #查看安裝信息
    • rpm --nodeps -e 安裝信息(mariadb-libs-5.5.56-2.el7.x86_64) #根據查找到的軟件包信息卸載
      • rpm --nodeps -e mariadb-libs-5.5.56-2.el7.x86_64
    • yum -y remove + 包名
      • yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
  • 安裝mysql
    • mysql安裝包下載
      https://dev.mysql.com/downloads/file/?id=474679
      • 下載的安裝包爲:mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
    • 安順序執行
      • tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
        • 安裝rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm的時候報錯以下:

          • 這個報錯的意思是須要安裝net-tools包和perl包:能夠先yum安裝一下。
          • yum install net-tools #安裝net-tools包
          • yum install perl #安裝perl包
        • 注:必須按如下順序安裝如下rpm包 - rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm(compat解決hue數據庫鏈接不上)
        • rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm #安裝mysqlclient須要用到
      • 啓動mysql 
        • systemctl start mysqld
        • systemctl enable mysqld
        • systemctl daemon-reload
      • 查看root初始密碼
        • cat /var/log/mysqld.log |grep password
      • 登陸mysql數據庫
        • mysql -uroot –p密碼 # 密碼爲上一步看到的
        • 首先,修改validate_password_policy參數的值
          • set global validate_password_policy=0;
        • 這樣,判斷密碼的標準就基於密碼的長度了。這個由validate_password_length參數來決定。validate_password_length參數默認爲8,能夠設置爲其它值,最小4位
          • set global validate_password_length=3;
          • set global validate_password_special_char_count=0;
          • set global validate_password_mixed_case_count=0;
          • set global validate_password_number_count=0;
          • set password = password('123');
            • Query OK, 0 rows affected,1 warning (0.00 sec) --> 修改爲功
          • 注:若是直接修改密碼會報錯
        • 受權用戶root使用密碼passwd從任意主機鏈接到mysql服務器
          • GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
          •  flush privileges;
          • 建立所須要的數據庫及用戶
            • 在mysql鏈接工具下執行(不然可能會報錯)
              create database metastore default character set utf8;
              CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
              GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';
              create database hive default character set utf8;
              GRANT ALL PRIVILEGES ON hive. * TO 'hive'@'%';
              create database cm default character set utf8;
              CREATE USER 'cm'@'%' IDENTIFIED BY 'cm';
              GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'%';
              create database am default character set utf8;
              CREATE USER 'am'@'%' IDENTIFIED BY 'am';
              GRANT ALL PRIVILEGES ON am. * TO 'am'@'%';
              create database rm default character set utf8;
              CREATE USER 'rm'@'%' IDENTIFIED BY 'rm';
              GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%';
              create database hue default character set utf8;
              CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
              GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';
              create database oozie default character set utf8;
              CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
              GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';
              flush privileges; 
        • 受權root用戶在主節點擁有全部數據庫的訪問權限
          • grant all privileges on *.* to 'root'@'cdh01' identified by '123' with grant option;
  • 安裝cm
    • 下載cm5.13.0包
    • http://archive.cloudera.com/cm5/cm/5/
    • 將下載好的cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz解壓到主節點的/opt/,解壓出來的文件夾爲cloudera與cm-5.13.0
    • 爲Cloudera Manager創建數據庫,此處須要前邊下載好的mysql-connector-java-5.1.47-bin.jar
      • cp /root/software/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/java/
      • cp /root/software/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /opt/cm-5.13.0/share/cmf/lib/
    • 主節點執行
      • /opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p123 scm scm scm
    • 配置Agent
      • vim /opt/cm-5.13.0/etc/cloudera-scm-agent/config.ini
        • server_host=cdh01
    • 拷貝文件到其餘子節點
      • scp -r /opt/cm-5.13.0/ root@hywx189:/opt/
      • scp -r /opt/cm-5.13.0/ root@hywx189:/opt/
    • 全部節點上建立用戶
      •   
        useradd --system --home=/opt/cm-5.13.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    • 準備parcels,將CDH相關文件拷貝到主節點/opt/cloudera/parcel-repo/
      • 相關文件

        • 注:須要將CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1改爲CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha,不然安裝時會從新下載,很重要!!
        • mv CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1 CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha
  • 啓動
    •   
      #主節點
      /opt/cm-5.13.0/etc/init.d/cloudera-scm-server start
      
      #主節點及其餘節點
      /opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
    • 啓動須要點時間,能夠查看數據庫scm中的hosts表,若是裏面出現節點信息表示server啓動完成
  • 開始安裝Hadoop集羣
    • 啓動成功後 瀏覽器訪問:
      • http://主節點ip:7180 (用戶名、密碼:admin)
    • CM Manager && Agent 成功啓動後,登陸前端頁面進行 CDH 安裝配置。步驟以下:
    • 注意:此處須要勾選全部機器
    • 注:此處按照本身下載的版本進行安裝便可
    • 第一個警告直接在全部節點上執行node

      • echo 10 > /proc/sys/vm/swappinessmysql

    • 第二個警告按照上面的說明,在全部節點上執行這兩條命令linux

      • echo never >/sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.localsql

      • echo never > /sys/kernel/mm/transparent_hugepage/enabled>> /etc/rc.localshell

      • 同時同一命令添加到 /etc/rc.local 等初始化腳本中,以便在系統重啓時予以設置。數據庫

    • 注:或可選擇全部服務
    • 此處hive ,oozie會安裝失敗,失敗信息以下。由於咱們使用了MySQL做爲hive元數據存儲,須要將mysql驅動拷貝到hive和oozie目錄下
    • 解決方法(須要在全部節點上執行)json

      • cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.47-bin.jar /opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hive/lib/

      • cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.47-bin.jar /var/lib/oozie/

  • 到此安裝完成!
相關文章
相關標籤/搜索