clouder manager完整搭建cdh集群

搭建cdh全过程


1)根据文档 “安装RedHat+Linux+7”  安装好centos7的操作系统 (3台机器,内存9g、3g、3g; 磁盘40g、15g、15g)

    思考问题:如果集群几十台机器,难道要逐一经行ip的配置吗?  
              建立centos系统时,选择的是本机模式,然后搭建系统的过程中进行的网络ip对应的是vm8的网段,配置的ip不对,没对 应(本机模式 --》vmware1, Nat模式 --》 vmware8)
              以后搭建一开始就选择NAT模式。(配置好后,再查看机器的ip跟ifcfg-ens33的IP是否一致)
              这样ip配置成功之后,就可以使用shell工具进行配置多台机器,可以通过shell给每台机器配置ssh,配置ssh之前得给各机器用户添加无密码使用sudo命令的权限(同时关闭SELinux,否则ssh连接会要密码) ,再写脚本配置多台机器
              这样的方案应该可以是可以执行的,虽然虚拟机都是通过克隆出来的,但是它们的ip都不一样的
              我们这里因为机器比较少,所以就用手动配置了,上述这种方案遇到多台机器的时候可以尝试

              给cdh用户添加无密码使用sudo命令的权限 (这里也先不配置吧),我这次主要想能通过clouder manager把cdh集群搭建起来,其它的问题先不管了
                vi /etc/sudoers 
                cdh ALL=(ALL) NOPASSWD: ALL
                                
             关闭SELinux,否则ssh连接会要密码  (没关也没见要密码)
                查看SELinux状态 
                /usr/sbin/sestatus -v                                             
                修改配置文件需要重启机器: 
                vim /etc/selinux/config 
                SELINUX=disabled
                
                
2)配置网卡设置ip、让虚拟机可以上网
            虚拟机怎么ping不通百度呢?(四个方面)
            a.windows中的vmware8的网段对应windows中的网段(手动设置)
            b.虚拟机中打开编辑网络编辑器,点击vmware8,选择NAT模式,子网网段与之前的保持一致,如:192.168.1.0
            c.虚拟机中点击设置,选择NAT模式
            d.vi /etc/sysconfig/network-scripts/ifcfg-ens33    
            
            sudo chmod 777 /etc/sysconfig/network-scripts/ifcfg-ens33
            vi /etc/sysconfig/network-scripts/ifcfg-ens33    
            选择NET模式,配置ip网关                                 
                    BOOTPROTO=static 
                    IPADDR=192.168.1.11
                    GATEWAY=192.168.1.2 
                    DNS1=8.8.8.8
                    DNS2=8.8.4.4
                    NETMASK=255.255.255.0 
                    ONBOOT=yes

                    sudo chmod 777 /etc/resolv.conf
                        更改DNS vi /etc/resolv.conf 
                        nameserver 8.8.8.8 
                        nameserver 8.8.4.4 

                    重启网络 systemctl restart network 
                    
                    
                                                                  

3) 更改主机名字 vi /etc/hostname    
    修改hosts文件,匹配主机名与ip 
    sudo chmod 777 /etc/hosts
    vi /etc/hosts
    
    192.168.1.11  cdh01
    192.168.1.12  cdh02
    192.168.1.13  cdh03

4)关闭防火墙 (永久性)
    关闭防火墙 
    systemctl stop firewalld.service 
    关闭开机自动启动 
    systemctl disable firewalld.service
    
    reboot: 再进行后续操作
    
5)
    挂载光盘:mount /dev/cdrom /mnt  (每台机器都需要挂载光盘),在此之前每台机器cd上都对应在centos系统文件
    删除原来的所有repo文件   rm -rf    /etc/yum.repos.d/*     (每台机器都要删完,不然install不成功)
    创建yum的源文件: vi /etc/yum.repos.d/my.repo
    [centos-yum]
    baseurl=file:///mnt 
    enabled=1
    gpgcheck=0    
    没有源就无法下载yum install ntp,源在安装的系统文件中,所以需要挂载光盘读取
    
    开启NTP服务
    所有节点都需要操作
    yum install ntp
    systemctl is-enabled ntpd
    systemctl enable ntpd
    systemctl start ntpd

    ntpdate手动同步一下时间     
    sudo service ntpd stop
    sudo ntpdate cn.pool.ntp.org : 同步网络时间
    sudo service ntpd start

    
6)配置免密ssh(每台机器都执行 )  
   SSH安装  (centos中默认已经安装好了ssh)
   重启OpenSSH服务   service sshd restart

生成公钥和密钥:ssh-keygen -t rsa
cd ~/.ssh     cat id_rsa.pub  >> authorized_keys  (追加,不会覆盖)

修改.ssh目录的权限以及authorized_keys 的权限(这个必须修改,要不然还是需要密码,所有机器上) 
     chmod   700   ~/.ssh
     chmod    600    ~/.ssh/authorized_keys
     
ssh-copy-id  -i  id_rsa.pub  root@cdh01    ---将你的公共密钥填充到一个远程机器上的authorized_keys文件中
                        

    
7)java安装的目录:  卸载原有的jdk,删完全部文件
    rpm -qa | grep java 
    rpm -e –nodeps java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64 
    java -version 

    rpm -ivh jdk-8u161-linux-x64.rpm  (.rpm包与.gz包不一样)

    配置环境变量: echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment


快照下
----------------------------------------------

8)clouder manager搭建cdh集群

clouder manager放到/opt目录
安装包、解压包存放地方分别是:  /root/package 、/root/training/
    
    
cdh01         clouder manager 、mysql、Agent
cdh02、03     Agent

8)-1)安装mysql
a)centos7自带的是mariadb,需要先卸载掉
    rpm -qa | grep mariadb
    rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64
    将下载好的mysql rpm包拷贝到服务器上然后解压
    tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar -C /root/training/

    然后安装 rpm -ivh  (互相依赖有先后顺序,就装这四个即可)
    mysql-community-common-5.7.9-1.el7.x86_64.rpm  
    mysql-community-libs-5.7.9-1.el7.x86_64.rpm             --(依赖于common)  
    mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm     -- (后面校验数据库hue需要)
    mysql-community-client-5.7.9-1.el7.x86_64.rpm          --(依赖于libs)  
    mysql-community-server-5.7.9-1.el7.x86_64.rpm         --(依赖于client、common) 
    mysql-community-devel-5.7.19-1.el7.x86_64.rpm  (hue会用到)

    安装后的mysql会自动初始化

b)配置开机启动(systemctl enable mysqld.service)
   启动MySQL: systemctl start mysqld.service    

    查看root用户的密码:cat /var/log/mysqld.log | grep password
    登录后修改密码:
    mysql -u root -p
    alter user 'root'@'localhost' identified by '123456';

c)允许mysql远程访问
    use mysql;
    select user,host from user;
    update user set host='%' where user='root' AND host='localhost';
    FLUSH PRIVILEGES;


d)拷贝mysql-connector-java到各个节点指定目录下(所有的节点)
   cp mysql-connector-java-5.1.36-bin.jar  /usr/share/java/mysql-connector-java.jar


e)创建数据库
    create database hive ;
    create database amon ;   ---> 这个是CDH的activity monitor
    create database hue ;
    create database oozie ; 
                             
    grant all on *.* to root@"%" identified by "123456";    
    

    注意:需要在cdh71上创建report数据库,如下:
    create database report;
    create user 'reportmanager'@'%' identified by '123456';
    grant all on report.* TO 'reportmanager'@'%';
    grant all on report.* TO 'reportmanager'@'localhost' identified by '123456';

快照下
-----------

8)-2)安装配置Clouder Manager(在cdh01上)
a)将cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz上传至/opt目录,并解压
     tar -zxvf cloudera-manager-centos7-cm5.12.1_x86_64.ta r.gz   

b)将mysql的驱动放到/opt/cm-5.12.1/share/cmf/lib/中   
     cp /usr/share/java/mysql-connector-java.jar /opt/cm-5.12.1/share/cmf/lib/

c)初始化Cloudera Manager的数据库元信息
     /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hcdh01 -uroot -p123456 --scm-host cdh01 scm scm scm
        <最后三个参数是:数据库名,数据库用户名,数据库密码注意符合规则>
        mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。-hcdh01:数据库建立在cdh01主机上面。也就是主节点上面。-uroot:root身份运行mysql。-123456:mysql的root密码是***。–scm-host cdh01:CMS的主机,一般是和mysql安装的主机是在同一个主机上。最后三个参数是:数据库名,数据库用户名,数据库密码。 

        遇到问题:Your password does not satisfy the current policy requirements

        解决如下:修改密码规则
        SHOW VARIABLES LIKE 'validate_password%';
        set global validate_password_policy=0;
        set global validate_password_mixed_case_count=0;
        set global validate_password_number_count=1;
        set global validate_password_special_char_count=0;
        set global validate_password_length=1;
        FLUSH PRIVILEGES;


d)创建cloudera-scm用户
      useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

e)将以下文件上传至/opt/cloudera/parcel-repo/目录
        CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
        CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
        manifest.json

    重命名文件CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
    改名为:CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha (注意:少了一个1)

  修改 /opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名
         
         
         
8)-3)配置Cloudera  Agent(cdh02和cdh03)
a)从主节点cdh01上将Cloudera Manager Agent复制到agent节点(cdh02和cdh03)上
    scp -r  /opt/cm-5.12.1 root@cdh02:/opt/
    scp -r  /opt/cm-5.12.1 root@cdh03:/opt/
    
b)在agent节点(cdh02和cdh03)上创建cloudera-scm用户
   useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm 

   
   
8)-4)部署CDH5
a)在cdh71启动服务Cloudera Manager Server
             /opt/cm-5.12.1/etc/init.d/cloudera-scm-server start

b)在cdh71、cdh72和cdh73上启动的agent :             
     /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start

c)访问cdh71上的Cloudera Manager:
        端口:7180(http://192.168.1.11:7180/cmf/login)

  用户名密码:admin/admin
接受用户条款
选择60天试用版
点击“继续”
为CDH群集安装指定主机(选择cdh01、cdh02和cdh03)

d)选择存储库
        (点击“Parcel更多选项”删除默认的远程库。如果之前没有做这一步,会有错误。需要重新安装) ---       对于不能上网的虚拟机,能上网应该没问题,没试过!

        
  e)验证正确性
        在cdh01、cdh02和cdh03上,执行下面的语句,并点击“重新运行”按钮
        echo 10 > /proc/sys/vm/swappiness
        echo never > /sys/kernel/mm/transparent_hugepage/defrag
        echo never > /sys/kernel/mm/transparent_hugepage/enabled

f)选择自定义,选择要在群集上安装的 CDH 5 服务(不要选择kafka,后期手动集成kafka)
      默认已经分配好,但个别地方改下,zookeeper分配三台机器,以及为activity monitor分配主机

g)校验数据库
     填写mysql中创建的数据库名、用户名、密码
     密码之前配的是Welcome_1,测试怎么变成了123456,hue还验证不通过??
     因为后来我把root用户的密码改为了123456,这里的数据库对应的用户也是root,所以密码跟着变
     安装mysql的时候,将 mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm 也装上hue就校验通过了
       
     
  h)创建成功
     验证每台机器上的Java后台进程
     
     
  i)报错客户端配置生成需要激活以下其他 Parcel:[kafka]
    CDH的parcel包中是没有kafka的,说明cdh集群要另外集成kafka,集成kafka的前提条件是要先搭建好集群
    附上链接:https://www.cnblogs.com/lenmom/p/9157087.html
    
    a.根据要求选择对应的版本下载   https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka
    b.下载kafka 的csd包(一个jar包)、parcel包(两个parcel加一个json文件)
    c.上传CSD包的jar,到/opt/cloudera/csd
      上传parcel包中的3个文件,到/opt/cloudera/parcel-repo(文件重名改掉、sha1后缀去掉1)
    d.进入CDH的管理界面,点击主机->parcel->检查新parcel
      kafka出来后,点击分配、激活按钮,操作成功
      向集群中添加kafka服务
    f.回到CDH主页面,点击kafka,进入配置页面,点击下方警告处,修改 Java Heap Size of Broker为1G
    
    
    卸载之前安装不成功的集群,重新安装:
    删除所有主机以及服务
    点击向集群添加主机,就会跟之前一样重新开始搭建集群
        
    
    clouder manager界面很多标红问题:(增加内存、磁盘分配得到解决)
    主机内存磁盘感觉都不够呢主要是内存,我都还没跑任务内存就满了什么鬼(删除不用的服务留下spark就好、试下直接新增虚拟机内存)
    从节点磁盘不太够(但可以通过克隆添加从节点解决)
    虚拟机的内存、磁盘容量都可以修改莫慌

猜你喜欢

转载自blog.csdn.net/huang66666666/article/details/85459153