环境

名称版本
操作系统 CentOS 6.5
java jdk1.8
cloudera-management cloudera-manager-el6-cm5.7.1
CDH 5.7.1

前期准备

在启动CDH之前,请确认以下工作都已完成

  • 软件包预安装(包含主机和从机)

    # 安装所需的包和库文件
    yum groupinstall -y 'Development Tools'
    yum install -y numactl* libxslt* zlib* openssl* sqlite* net-tools ntp psmisc tree vim 
  • 关闭防火墙(包含主机和从机) 

    # 关闭防火墙
    service iptables stop
    # 关闭防火墙开机自启动
    chkconfig iptables off
    # 查看iptables所有项是否为off
    chkconfig --list iptables 
  • 配置hosts(包含主机和从机) 

    # 编辑hosts文件
    vi /etc/hosts
    # 在行尾根据实际情况添加如下内容
    例如,我有一台主机(master)和三台从机(slave1,slave2,slave3)
    172.23.1.61 master
    172.23.1.62 slave1
    172.23.1.63 slave2
    172.23.1.64 slave3 
  • 关闭selinux(包含主机和从机) 

    # 编辑config文件
    vi /etc/selinux/config
    # 修改SELINUX的值
    SELINUX=enforcing ===> SELINUX=disabled 
  • 禁用大页面和修改内存交换值(包含主机和从机)

    • 禁用大页面 
    # 编辑开机自启动文件rc.local
    vi /etc/rc.d/rc.local
    # 在行尾写入如下内容
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    # 需知
    CentOS7中rc.local的权限被降低了,需要手动修改文件的权限,否则开机后命令不生效
    chmod +x /etc/rc.d/rc.local
    • 修改内存交换值 
    # 需知
    CentOS6和CentOS7修改的方法是不一样的
    # CentOS6
    vi /etc/sysctl.conf
    在行尾写入如下内容
    vm.swappiness=0
    # CentOS7
    vi /usr/lib/tuned/virtual-guest/tuned.conf
    修改vm.swappiness的值
    vm.swappiness = 30 ===> vm.swappiness = 0
    # 备注
    find / -name *.conf -type f -exec grep "vm.swappiness" {} + 
  • 重启系统,检查防火墙/hosts/selinux/大页面/内存交换是否生效(包含主机和从机) 

    # 防火墙
    [root@master ~]# service iptables status
    iptables: Firewall is not running.
    # selinux
    [root@master ~]# sestatus
    SELinux status:                 disabled
    # hosts
    [root@master ~]# <=== '@'后面变为对应的master/slave1/slave2/...即可
    # 大页面
    [root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    always madvise [never]
    [root@master ~]# cat /sys/kernel/mm/transparent_hugepage/defrag 
    always madvise [never]
    # 内存交换
    [root@master ~]# cat /proc/sys/vm/swappiness
    0 
  • 配置ssh无密钥连接(包含主机和从机) 

    # 生成ssh密钥,
    [root@localhost ~]# ssh-keygen -t rsa
    输入如上命令,然后按三次回车
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    93:d0:41:c9:b8:41:4d:88:01:c7:c2:f4:7e:25:4a:86 root@localhost.localdomain
    The key's randomart image is:
    +--[ RSA 2048]----+
    | oooo+.B+.       |
    |  o+o +.+.       |
    |  E.+ ooo        |
    |   + ..+ .       |
    |    o . S        |
    |     .   .       |
    |                 |
    |                 |
    |                 |
    +-----------------+
    # 将公钥复制到本机和其他主机
    [root@master ~]# ssh-copy-id slave1
    如上命令需要对集群中的所有主机名执行一次,包含本身
    The authenticity of host 'master (172.23.1.65)' can't be established.
    RSA key fingerprint is 10:01:b9:60:ba:84:d1:fe:d5:34:70:a4:a0:34:d2:6a.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'master,172.23.1.65' (RSA) to the list of known hosts.
    root@master's password: 
    Now try logging into the machine, with "ssh 'master'", and check in:
      .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.
    # 测试无密连接
    [root@master ~]# ssh slave1
    Last login: Tue Feb 27 15:21:34 2018 from 172.21.1.201
    # Ctrl+D退出ssh连接
    [root@slave1 ~]# logout
    Connection to slave1 closed.
    如上操作需要在所有主机之间进行验证
  • 配置jdk环境变量(包含主机和从机)

    cm默认回去/usr/java目录寻找jdk,如果如果不存在,则新建一个,然后将jdk解压到该文件夹 

    # 配置环境变量
    vi /etc/profile
    # 在行尾写入如下内容
    export JAVA_HOME=/usr/java/jdk1.8.0_152/
    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export PATH=$PATH:$JAVA_HOME/bin
    # 使环境变量生效
    source /etc/profile
    # 测试java是否配置成功
    [root@master ~]# java -version
    java version "1.8.0_152"
    Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
    Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
     

     

  • 安装mysql(主机)

    安装mysql之前检查之前是否安装有mysql

    rpm -qa|grep mysql # 查看是否有mysql包

    rpm -e --nodeps mysql-libs # 删除该包(例,centos7为mariadb-libs)

     

    mysql6.5基础所需的包为client/devel/server,将三个包放一起然后执行以下命令

    rpm -ivh MySQL-*

     

    启动mysql

    service mysql start

     

    安装完成后用初始的随机密码登录并修改密码,初始的随即密码保存在/root/.mysql_secret

    mysql -uroot -pyZ3PplFeSgK8dTHV # 用初始密码登录(例)

    set password=password('ceshi123'); # 修改初始密码

     

    退出后重新进入mysql并执行以下命令

    use mysql # 切换到mysql数据库

    update user set password=password('ceshi123') where user='root'; # 设置所有'root'账户的密码 update user set host='%' where user='root' and host='localhost'; # 开启远程连接

    update user set password_expired='N' where user='root'; # 设置密码永不过期

    flush privileges; # 使以上修改生效

     

    提前建立ooziehive的数据库

    create database oozie;

    create database hive;

     

  • 文件解压(主机)

    解压cloudera-manager-el6-cm5.7.1_x86_64.tar.gz/opt目录

     

  • 编辑config文件(主机)

    编辑/opt/cm-5.7.1/etc/cloudera-scm-agent/config.ini文件,按如下内容进行修改

    server_host=localhost ===> server_host=master

     

  • 复制mysql-connector(主机)

    mysql-connector-java-5.1.45-bin.jar文件复制到/opt/cm-5.7.1/share/cmf/lib/目录

     

  • 新建用户(包含主机和从机))

    sudo useradd --system --home=/opt/cm-5.7.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 初始化数据库(需要jdbc)(主机)

    /opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pceshi123 --scm-host localhost scm scm scm
    注:出现'log4j'报错可以忽略
     复制文件到从机(主机)
  • scp -r /opt/* slave1:/opt # 将opt目录下的所有文件复制到从机,如有多台从机则依次执行

    scp -r /usr/java slave1:/usr/ # 将java复制到从机上,如有多台从机则依次执行

    scp /etc/profile slave1:/etc/ # 将配置文件复制到从机上,如有多台从机则依次执行

    复制完成后执行source /etc/profile

     

  • 提升读写权限(主机)

    /var/lib目录赋予其他用户读写的权限

    chmod o+w -R /var/lib/

     

  • 配置ntp服务器(包含主机和从机)

    • ntp安装

      yum install -y ntp # 安装ntp

      chkconfig --add ntpd # 添加ntpd服务到启动项

      chkconfig ntpd on # 设置ntpd开机启动

     

    • ntp配置

      vi /etc/ntp.conf # 编辑ntp配置文件,并修改如下内容

      • 主机配置 

        # Hosts on local network are less restricted.
        # 允许内网其他机器同步时间
        restrict 192.168.18.0 mask 255.255.255.0 nomodify notrap
        # Use public servers from the pool.ntp.org project.
        # 配置ntp服务器
        server ntp1.aliyun.com
        server ntp2.aliyun.com
        server ntp3.aliyun.com
        server ntp4.aliyun.com
        server ntp5.aliyun.com
        # allow update time by the upper server 
        # 允许上层时间服务器主动修改本机时间
        restrict ntp1.aliyun.com nomodify notrap noquery
        restrict ntp2.aliyun.com nomodify notrap noquery
        restrict ntp3.aliyun.com nomodify notrap noquery
        # 外部时间服务器不可用时,以本地时间作为时间服务
        server  127.127.1.0     # local clock
        fudge   127.127.1.0 stratum 10 
      • 从机配置 

        # 配置ntp服务器的ip
        server 192.168.18.90
        # 允许上层服务器主动修改本机时间
        restrict 192.168.18.90 nomodify notrap noquery
        # 外部服务器不可用时,以本地时间作为时间服务
        server  127.127.1.0     # local clock
        fudge   127.127.1.0 stratum 10
         

     

  • 判断ntpd同步(通常ntpd自动同步需要5-30分钟不等的时间)

    • 主机测试

      如果ntp server出现ip地址,则同步成功 

      [root@master ~]# ntpstat
      synchronised to NTP server (120.25.115.19) at stratum 3 
         time correct to within 41 ms
         polling server every 1024 s
       从机测试
    • 如果ntp server出现主机的ip地址,则同步成功 

      [root@slave1 ~]# ntpstat
      synchronised to NTP server (172.23.1.61) at stratum 4 
         time correct to within 57 ms
         polling server every 1024 s 

    ntp相关操作

    service ntpd start/stop/restart # 启动/停止/重新启动ntpd服务

    ntpstat # 查看当前ntpd同步状态

    ntpdate -u ntp1.aliyun.com # 手动同步时间

    hwclock -w # 手动同步时间后写入硬件 

  • 放入cloudera版本文件(主机)

    将如下三个文件放入/opt/cloudera/parcel-repo文件夹中

    CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel

    CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha

    manifest.json 

  • 启动master和slaves

    • 主机需要启动agentserver

      /opt/cm-5.7.1/etc/init.d/cloudera-scm-server start

      /opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start 

    • 从机只需要启动agent

      /opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start

  • 检查7180端口是否启动(主机)

    [root@master CDH-CentOS6-5.7.1]# netstat -nutlp|grep 7180
    tcp        0      0 0.0.0.0:7180        0.0.0.0:*      LISTEN      1669/java 

    如果出现如上内容的话,就可以打开浏览器进入安装页面了,如172.23.1.60:7180

 

网页配置

  • 主界面,帐号admin,密码admin
  •  

     

  •  

     

 

  • 协议,勾选同意,点击继续
  •  

     

 

  • 版本选择,选择免费,点击继续
  •  

     

 

  • 点击继续

 

 

 

  • 勾选创建的有主机,点击继续
  •  

     

 

  • 选择版本,选择我们5.7.1的版本,点击继续
  •  

     

 

  • 安装,解压,激活过程,完成后点击继续

 

 

 

  • 添加mysql连接使用的jar包

    回到后台,将mysql-connector-java-5.1.45-bin.jar包复制到以下两个路径

    /var/lib/oozie

    /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/

     

  • 安全检查,点击继续

 

 

 

  • 选择需要安装的服务,根据实际需求进行选择,这里我们选择全部,点击继续

 

 

 

  • 选择每台主机对应的角色,这里我们保持默认,点击继续

 

 

 

  • 为hive和oozie选择对应的数据库,因为之前我们提前创建了这两个数据库,所有这里填写mysql数据库的帐号密码即可,输入完成后可以点击测试连接进行验证,验证通过后,点击继续

 

 

 

  • 服务参数配置界面,保持默认即可,点击继续

 

 

 

  • 安装界面,这里过程比较久,等它自动跑完所有选择即可,完成后点击继续

 

 

 

  • 下图就是安装完成后cloudera manager的主界面,关于cloudera如何使用会在后续文档中逐渐补充

 

 

参考网站

https://www.cloudera.com/documentation/enterprise/5-7-x.html # 官方5.7.1参考文档

http://archive.cloudera.com/cdh5/parcels/latest/ # CDH-parcels安装包下载地址

http://archive.cloudera.com/cm5/cm/5/ # cm安装包下载地址

posted on 2022-09-14 10:40  松晨  阅读(198)  评论(0编辑  收藏  举报