我有三台虚拟机,都是最新安装的centos7,下面是资源分配

主机名ip内存磁盘大小主从
s201192.168.0.201

10g

40g
s202192.168.0.2024g20g

s203192.168.0.2034g20g

 

 

 

 

【安装过程中默认都是使用root用户进行安装】

1. 先提前下载好所需的各种安装包

2. 安装JDK(默认是全新的最小化安装的centos7)

3.修改机器名(所有节点)

4.关闭防火墙(所有节点)

5.设置免密登录(主节点能ssh免密登录到从节点)

6.关闭SELINUX(所有节点)

7.修改Linux内核参数(所有节点)

8.其他安装与配置(所有节点)

9.配置NTP服务

NTP服务端(主节点)

NTP客户端(所有从节点)

10.Mysql安装(主节点)

11.安装CM

1.创建用户

2.制作本地YUM源

3.拷贝jar包

4.修改cloudera-scm-agent配置

5.初始化cm

6.启动CM Server和Agent

7.访问CM

12.在ui界面安装时可能发生的问题

安装失败,想要重新安装

主机运行状态不良

安装失败。 无法接收 Agent 发出的检测信号。

Inspector did not run successfully.

启动zookeeper失败

NameNode is not formatted

java.io.FileNotFoundException: /dfs/nn/current/VERSION (权限不够)

启动yarn报错


1. 先提前下载好所需的各种安装包

CM包:
    CM版本:5.13.1 
    cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
    下载地址:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz

CDH包
    CDH版本:5.13.1;
    CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel; 
    CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1; 
    manifest.json
    下载地址:
    http://archive.cloudera.com/cdh5/parcels/5.13.1/manifest.json
    http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1
    http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel

    将所有包上传至s201的/soft目录下

2. 安装JDK(默认是全新的最小化安装的centos7)

  • 卸载openJDK,安装sunJdk

       # rpm -qa|grep java

       #  rpm -e --nodeps java开头的

       # java -version检查是否卸载完了

  • 开始安装(此处更换为你的jdk压缩包的名字)

       # tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/

       # cd /usr/local/

       # ln -s jdk1.8.0_171/ jdk

  • 创建环境变量

       # vi /etc/profile

       在文件最下方或者指定文件添加 
       # export JAVA_HOME=/usr/local/jdk
       # export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 
       # export PATH=$PATH:$JAVA_HOME/bin

       # source /etc/profile

       # java -version查看是否成功

3.修改机器名(所有节点)

        # hostnamectl set-hostname xxx  //设置机器名
        # hostname // 查看本机名

        每个节点机器,都要配置hosts
        # vi /etc/hosts
        添加以下内容:

        192.168.0.201 localhost.s201
        192.168.0.201 s201
        192.168.0.202 s202
        192.168.0.203 s203

4.关闭防火墙(所有节点)

        # systemctl disable firewalld
        可以安装完成后再打开

5.设置免密登录(主节点能ssh免密登录到从节点)

        主节点上依次执行:
            # cd ~
            # ssh-keygen -t rsa
            # scp /root/.ssh/id_rsa.pub root@s202:~
            # scp /root/.ssh/id_rsa.pub root@s203:~
        所有从节点上执行:
            # cd ~
            # mkdir .ssh(如果没有.ssh目录)
            # cat id_rsa.pub >> ~/.ssh/authorized_keys
            # chmod 600 ~/.ssh/authorized_keys

6.关闭SELINUX(所有节点)

        # vi /etc/selinux/config
        增加:
        SELINUX=disabled  
        重启后生效:
        # reboot
        查看SELINUX 是否关闭:
        # sestatus
        查看结果:
        # SELinux status: disabled

7.修改Linux内核参数(所有节点)

        (1)为避免安装过程中出现的异常问题,首先调整Linux内核参数,设置swappiness,控制换出运行时内存的相对权重,                 Cloudera 建议将 swappiness 设置为 10:
            查看swappiness :cat /proc/sys/vm/swappiness
            永久性修改,执行下面两条命令
            sysctl -w vm.swappiness=10
            echo vm.swappiness = 10 >> /etc/sysctl.conf 
        (2)关闭透明大页面:
            cat /sys/kernel/mm/transparent_hugepage/defrag
            显示:[always] madvise never
            cat /sys/kernel/mm/transparent_hugepage/enabled
            显示:[always] madvise never
            以上状态就说明是启用的
            
            永久关闭:
            vi /etc/rc.d/rc.local
            在文件后添加下面内容:
            if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
            echo never > /sys/kernel/mm/transparent_hugepage/enabled
            fi
            if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
            echo never > /sys/kernel/mm/transparent_hugepage/defrag
            fi

            保存退出,然后赋予rc.local文件执行权限:
            chmod +x /etc/rc.d/rc.local
            重启系统,以后再检查THP状态
            cat /sys/kernel/mm/transparent_hugepage/defrag
            显示:always madvise [never]
            cat /sys/kernel/mm/transparent_hugepage/enabled
            显示:always madvise [never]
            显示状态被禁用了

            (3)修改文件句柄数:
                查看文件句柄数,显示1024,显然太小
                ulimit -n 
                显示:1024
                修改限制
                vi /etc/security/limits.conf 
                在文件后加入下面内容:

                * soft nofile 100000
                * hard nofile 100000
                
                修改后需要重启机器,再次查看句柄数:ulimit -n 

8.其他安装与配置(所有节点)

        为避免安装过程中出现异常问题,安装相关依赖包:
        #yum -y install psmisc MySQL-python at bc bind-libs bind-utils cups-client cups-libs cyrus-sasl-gssapi cyrus-sasl-plain ed fuse fuse-libs httpd httpd-tools keyutils-libs-devel krb5-devel libcom_err-devel libselinux-devel libsepol-devel libverto-devel mailcap noarch mailx mod_ssl openssl-devel pcre-devel postgresql-libs python-psycopg2 redhat-lsb-core redhat-lsb-submod-security  x86_64 spax time zlib-devel
        #yum install -y python-lxml
        #yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel

        # chmod +x /etc/rc.d/rc.local
        # yum -y install rpcbind
        # systemctl start rpcbind
        # echo "systemctl start rpcbind" >> /etc/rc.d/rc.local


9.配置NTP服务

        集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体安装过程如下:
        所有节点安装相关组件:
        # yum install ntp ntpdate -y

        

  • NTP服务端(主节点)

            # vi /etc/ntp.conf
            注释主节点中配置文件的:
            #restrict default nomodify notrap nopeer noquery
            //在文件中添加以下内容:

            restrict default nomodify
            server 0.cn.pool.ntp.org 
            server 1.asia.pool.ntp.org
            server 2.asia.pool.ntp.org
            server 127.0.0.1 

            fudge 127.0.0.1 stratum 10

            启动ntp服务:
            # systemctl start ntpd
            配置开机启动:
            # systemctl enable ntpd.service
            注意:如果启动ntp服务或者ntpd 开机启动失效,有可能是因为安装了chronyd 并且是开机自启状态,所以导致ntpd开机自启失败。

            # 查看  chronyd设置状态
            # systemctl status chronyd
            chronyd.service - NTP client/server
               Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
               Active: inactive (dead)
                 Docs: man:chronyd(8)
                       man:chrony.conf(5)
                       
            以面表明,chronyd显示为开机启动状态。
            将chronyd设为禁用状态:
            # systemctl disable chronyd.service
            此时,NTP的服务开机自启动完成! 
            检查是否设置成功:
            # ntpq  -p
            //更新时间
            #timedatectl 

  • NTP客户端(所有从节点)

            远程客户端时间同步测试
            # date
            # ntpdate 192.168.0.201
                192.168.0.201是NTP服务端IP,显示如下信息,测试成功:
                
            
            如果出现:ntpdate[10821]: no server suitable for synchronization found
                
                查看是否关闭s201的防火墙
            
            
         
            客户端设置计划任务,每30分钟同步时间
            #crontab -e 
            //加入内容:
            0-59/30 * * * * /usr/sbin/ntpdate 192.168.0.201 && /sbin/hwclock -w
            设置定时任务开机启动
            //设置开机启动
            # systemctl enable crond.service

            //查看状态
            # systemctl status crond

10.Mysql安装(主节点)

        先卸载mariadb:
        # yum remove mariadb*

        # wget https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

  • 解压安装包

                # tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
                //解压后文件列表:
                mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpm
                mysql-community-devel-5.7.18-1.el7.x86_64.rpm
                mysql-community-client-5.7.18-1.el7.x86_64.rpm
                mysql-community-common-5.7.18-1.el7.x86_64.rpm
                mysql-community-embedded-5.7.18-1.el7.x86_64.rpm
                mysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpm
                mysql-community-libs-5.7.18-1.el7.x86_64.rpm
                mysql-community-server-minimal-5.7.18-1.el7.x86_64.rpm
                mysql-community-test-5.7.18-1.el7.x86_64.rpm
                mysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpm
                mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm

  • 按次序安装

                按common–>libs–>client–>server的顺序安装:
                # rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
                # rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
                # rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
                # rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
                # rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm

        如安装出现依赖错误:
        # wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
        # rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm 

        //安装下面包,否则Hue安装报连接错误
        # rpm -ivh  mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm

  • 启动数据库

                # systemctl start mysqld 
                查看状态: 
                # systemctl status mysqld
            

  • 修改MySQL初始密码

                1、先修改配置文件/etc/my.cnf令MySQL跳过登录时的权限检验
                # vi /etc/my.cnf
                新增:
                validate_password=off
                skip-grant-tables
                2、重启MySQL
                #service mysqld restart
                3、免密码登录MySQL。
                #mysql
                4、mysql客户端执行如下命令,修改root密码
                mysql>  use mysql;
                mysql> UPDATE user SET authentication_string = password('root') WHERE host = 'localhost' AND user = 'root';
                mysql> select host,user, authentication_string, password_expired from user; 
                mysql> update user set password_expired='N' where password_expired='Y'; //密码不过期
                mysql> update user set host='%' where user='root' and host='localhost'; //远程可访问
                mysql> flush privileges; //刷新
                mysql> exit;//退出

        5、修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL(这一步非常重要,不执行可能导致严重的安全问题)
        #systemctl restart mysqld.service  //重启 Mysql

11.安装CM

        (1)在主节点上将CM解压到/opt/目录:
            # tar -zxvf cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz  -C /opt/
            # ls /opt/
            cloudera  cm-5.13.1
            
        (2)创建数据库
            在主节点上:
            # mysql -h127.0.0.1 -uroot -p   //加参数-h127.0.0.1 指定本机方式,否则可能不允许执行grant
            Enter password:          \\输入数据库密码
            //在MariaDB [(none)]>命令状态输入下面脚本:
            create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            grant all privileges on *.* to root@localhost identified by '123456' with grant option;
            grant all on *.* to root@"%" Identified by "123456";
            flush privileges;
            exit;
            //复制Mysql JDBC包到/opt/cm-5.13.1/share/cmf/lib/目录
            
            wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jar
            #cp mysql-connector-java-5.1.43.jar /opt/cm-5.13.1/share/cmf/lib/
            
            cp mysql-connector-java-5.1.47-bin.jar /opt/cm-5.13.1/share/cmf/lib/


1.创建用户

# useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

2.制作本地YUM源

        进入软件包目录
        #cd /soft
        //拷贝三个文件到/opt/cloudera/parcel-repo/目录
        #cp  CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/
        //进入/opt/cloudera/parcel-repo/目录
        #cd /opt/cloudera/parcel-repo/
        //修改文件名
        #mv CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1  CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha


3.拷贝jar包

        在所有节点上:
        //如果没有/usr/share/java/目录,则创建:mkdir /usr/share/java
        # cp mysql-connector-java-5.1.43.jar /usr/share/java/mysql-connector-java.jar
        在主节点上:
        //将mysql JDBC jar 包拷贝到  /opt/cm-5.13.1/share/cmf/lib/ 目录
        #cp mysql-connector-java-5.1.43.jar  /opt/cm-5.13.1/share/cmf/lib/

4.修改cloudera-scm-agent配置

在主节点上,修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini文件:
        //将config.ini server_host=localhost 内容改为server_host=192.168.0.201

        在主节点上:
        //将cm-5.13.1 打包,并复制到其他节点
        #cd /opt 
        #tar czf cm-5.13.1.tar.gz  cm-5.13.1/
        //复制到其他节点
        #scp cm-5.13.1.tar.gz s202:/opt/
        #scp cm-5.13.1.tar.gz s203:/opt/
         在所有从节点上解压:
        //将cm-5.13.1 包解压
        #cd /opt
        #tar -xzvf cm-5.13.1.tar.gz
        //解压后删除
        #rm -rf cm-5.13.1.tar.gz

5.初始化cm

        //初始化CM,执行下面脚本
        (对应于:数据库类型、数据库服务器、用户名、密码、CMServer 所在节点…….)
        #/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hs201 -uroot -p123456 --scm-host s201 scm scm scm
        //如果出现下面错误:
        java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
        //解决办法:
        查看在/etc/hosts 文件中,是否加上
        127.0.0.1 localhost.s201

6.启动CM Server和Agent

        在主节点上,启动cloudera-scm-server:
        # /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
        启动过程较慢,可通过/opt/cm-5.13.1/log/cloudera-scm-server日志,查看启动过程。
        在所有节点上,启动cloudera-scm-agent:
        # /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start


7.访问CM

        地址:http://s201:7180[使用s201的前提是在windows的hosts文件中进行了配置,如果没有则使用192.168.0.201]
        用户名、密码:admin
 


12.在ui界面安装时可能发生的问题

  • 安装失败,想要重新安装

        每台机器执行:

        # ps -ef |grep cloudera |grep -v 'grep'|awk '{print $2}'|xargs -t -i sudo kill -9 {}

        删除Agent节点的UUID,每台机器执行:

        # rm -rf /opt/cm-5.13.1/lib/cloudera-scm-agent/*

        进入主节点的Mysql数据库,然后drop database cm;

        在主节点上重新初始化CM数据库:

        # /opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hs201 -uroot -p123456 --scm-host s201 scm scm scm

        执行重新启动脚本:

        主节点:# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server restart

        Agent节点:# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent restart
 

  • 主机运行状态不良

        该主机上运行:

        # find / -name cm_guid

        # rm -rf 查询出来的目录

        重启:

        # /etc/init.d/cloudera-scm-agent restart    
 

  • 安装失败。 无法接收 Agent 发出的检测信号。

        排除是否是防火墙的问题;

        排除是否端口被占用:

            netstat -tunlp |grep 9000
            netstat -tunlp |grep 9001

  • Inspector did not run successfully.

              vi /opt/cm-5.13.1/etc/default/cloudera-scm-server
          添加:
          export JAVA_HOME=/usr/local/jdk
          重启:
          # /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent restart
          或者:
          http://s201:7180/cmf/hardware/hosts/config?q=java_home#filterfreeText=java_home
         设置java_home    
 

  • 启动zookeeper失败

        Unable to access datadir, exiting abnormally org.apache.zookeeper.server.persistence.FileTxnSnapLog$DatadirException: Missing data directory /var/lib/zookeeper/version-2, automatic data directory creation is disabled (zookeeper.datadir.autocreate is false). Please create this directory manually.

        # mkdir /var/lib/zookeeper/version-2
        # chown zookeeper:zookeeper version-2/    

 

  • NameNode is not formatted

         # /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/bin/hadoop namenode -format
    

  • java.io.FileNotFoundException: /dfs/nn/current/VERSION (权限不够)

        在启动日志中可以查看到如下信息:
        STARTUP_MSG:   user = hdfs
        进行授权操作:
        # chown hdfs:root -R /dfs/nn/*
        

  • 启动yarn报错

        Service org.apache.hadoop.yarn.server.nodemanager.recovery.NMLeveldbStateStoreService failed in state INITED; cause: org.fusesource.leveldbjni.internal.NativeDB$DBException: IO error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: 权限不够
        STARTUP_MSG: Starting NodeManager
        STARTUP_MSG:   user = yarn
        
       #  chown yarn:root -R /var/lib/hadoop-yarn/*

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐