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/

  • 到此安装完成!
相关文章
相关标签/搜索