redhat7.4离线搭建cdh6.3.1(四节点)

                                                        
                                                        一.安装版本
---------------------------------------------------------------------------------------------------------------------
linus版本:red hat7.4
cdh版本:6.3.1
java版本:1.8
---------------------------------------------------------------------------------------------------------------------                                            
                                                        
                                                        
                                                        
                                                        二.使用介质
---------------------------------------------------------------------------------------------------------------------
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel                 mysql-connector-java-5.1.47.jar
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm        jdk-8u202-linux-x64.tar.gz
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm      cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm       
manifest.json                                                cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm  
---------------------------------------------------------------------------------------------------------------------


                                                         三.搭建前准备工作(默认所有节点都做)
---------------------------------------------------------------------------------------------------------------------
1.配置Ip与主机名映射,命令:vi /etc/hosts:
        192.168.80.81 slave1
        192.168.80.82 slave2
        192.168.80.83 slave3
        192.168.80.84 master
        
2.禁用IPv6:
    echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
    echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf    

3.关闭防火墙:
    firewall-cmd --state
    systemctl stop firewalld.service
    systemctl disable firewalld.service        
    
4.禁用Selinux:
    vi /etc/sysconfig/selinux,改为SELINUX=disabled    
    
5.设置文件打开数量和用户最大进程数:
    在文件最后增加以下内容:
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000

6.将redhat7的系统镜像(*.ISO)做为yum源:
https://blog.csdn.net/vinke666/article/details/91345290    
    
7.卸载Centos自带的JDK:
    使用sudo rpm -qa|grep jdk 或 sudo rpm -qa|grep java找到自带的jdk,
    使用sudo rpm -e --nodeps xxx yyy zzz卸载自带的JDK
    
8.安装JDK:
    1.解压jdk-8u202-linux-x64.tar.gz到一个目录,
    2.并将路径填写到/etc/profile文件的最下方:
        JAVA_HOME=/apps/jdk1.8.0_202
        JRE_HOME=$JAVA_HOME/jre
        PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME JRE_HOME PATH
    3.echo "JAVA_HOME=/app/jdk1.8.0_202" >> /etc/environment
9.将/proc/sys/vm/swappiness 设置为 0 (修改swap空间的swappiness,降低对硬盘的缓存 ):
    echo "vm.swappiness=0"  >> /etc/sysctl.conf
    
10.使用ntp同步集群时间:
    1.yum install ntp(所有节点)
    2.主节点:
        vi /etc/ntp.conf:
        注释掉这几个
        #server 0.centos.pool.ntp.org iburst
        #server 1.centos.pool.ntp.org iburst
        #server 2.centos.pool.ntp.org iburst
        #server 3.centos.pool.ntp.org iburst
    
        添加以下内容
        server 127.127.1.0
        fudge  127.127.1.0  stratum  10
        
        vi /etc/sysconfig/ntpd  加入下面一句话,用于配置boot时间和系统时间同步
        SYNC_HWCLOCK=yes
        
        启动ntpd服务器    
        sudo service ntpd start
        sudo service ntpd status
        chkconfig ntpd on
        chkconfig --list |grep ntpd
    3.从节点:
        vi /etc/ntp.conf:
        添加以下内容
        server master
    4.所有节点:
        service ntp restart

11.配置免密登录:
    1.在所有节点执行ssh-keygen   (提示时,直接回车即可)    
    2.在每个节点的/root/.ssh/下创建authorized_keys文件,将其它节点生成的公钥/root/.ssh/id_rsa.pub的内容放到自己的authorized_keys文件
    3.每个节点分别尝试免密连一次其它节点

12.安装mysql数据库(主节点):
    groupadd mysql
    useradd -r -g mysql mysql
    cd /usr/local/mysql/
    chown -R mysql:mysql ./
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    
    vi /etc/init.d/mysql
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data

    cd /etc
    rm -rf my.cnf
    vi my.cnf
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    [client]
    port = 3306
    default-character-set=utf8
    
    [mysqld]
    # 一般配置选项
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    port = 3306
    character-set-server=utf8
    default_storage_engine = InnoDB
    
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
    cd /usr/local/mysql/bin/
    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    记录界面弹出的密码
    b_eFbcYEt60n.
    
    service mysql start
    ./mysql -uroot -p后边跟着上边的密码
    set password=password('123456');
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
    flush privileges;
    
    
    chkconfig --add mysql
    chkconfig mysql on
    
    vi /etc/profile
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$PATH:$MYSQL_HOME/bin
    
    source /etc/profile    


---------------------------------------------------------------------------------------------------------------------                                            


                                                        四.安装cdh
---------------------------------------------------------------------------------------------------------------------
1.安装主节点的cdh相关组件:
    yum  install -y perl
    yum install -y psmisc
    yum  install -y postgresql-server
             
    rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm  
    rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm

2.配置连接mysql的java驱动:
    mkdir -p /usr/share/java/
    cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

3.创建cdh相关数据库:
    mysql -u root -p123456
    CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
    CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
    CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
    CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
    CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
    CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
    CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
    
4.初始化cdh的数据库:
    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456

5.上传大数据服务组件资源包(CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel、manifest.json)到/opt/cloudera/parcel-repo,
    创建CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha,
    在manifest.json文件中找到CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel对应的hash值,写入CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha文件
    给他们赋权:chmod -R guo+wr CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
            chmod -R guo+wr CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
            chmod -R guo+wr manifest.json
            
6.在主节点启动server:
    systemctl start cloudera-scm-server
    
7.在所有节点安装agent:
    1.yum install -y bind-utils cyrus-sasl-plain cyrus-sasl-gssapi portmap /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python
      yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python
    2.rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
      rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm         
            
8.修改agent所有的节点配置文件config.ini内容
     vi  /etc/cloudera-scm-agent/config.ini:
     server_host=master (server节点)
            
9.所有节点启动agent:
    systemctl start cloudera-scm-agent        
                                            
10.进入http://master:7180进行集群和服务的安装
---------------------------------------------------------------------------------------------------------------------    
    
                                                一.异常处理
---------------------------------------------------------------------------------------------------------------------
问题:启动server失败
[root@iZ8vbi6snaln13lk0b9ybiZ cloudera]# systemctl status cloudera-scm-server
a—? cloudera-scm-server.service - Cloudera CM Server Service
   Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Thu 2020-04-09 13:55:48 CST; 5s ago
  Process: 2900 ExecStart=/opt/cloudera/cm/bin/cm-server (code=exited, status=1/FAILURE)
  Process: 2897 ExecStartPre=/opt/cloudera/cm/bin/cm-server-pre (code=exited, status=0/SUCCESS)
 Main PID: 2900 (code=exited, status=1/FAILURE)

Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service: main process exited, code=exited, status=1/FAILURE
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Unit cloudera-scm-server.service entered failed state.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service failed.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service holdoff time over, scheduling restart.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Stopped Cloudera CM Server Service.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: start request repeated too quickly for cloudera-scm-server.service
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Failed to start Cloudera CM Server Service.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Unit cloudera-scm-server.service entered failed state.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service failed.
解决办法:
[root@master cloudera-scm-server]# mkdir -p /usr/java
[root@master cloudera-scm-server]# ln -s /app/jdk1.8.0_202  /usr/java/default

1 异常1
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.3 (Final)”且版本为“2.6.32-279.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它 
(每个节点)
解决方案
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /etc/rc.local

------------------------------------------
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并将上面的两条命令写入开机自启动
vim /etc/rc.local
--------------------------------------------------------------


2 异常2
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决方案:
echo  0 >  /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>/etc/sysctl.conf
sysctl -p


3 异常3
pstree: 未找到命令
解决方案
yum install -y psmisc

4,找不到jdk

 输入:sudo vi /etc/sudoers ,在sudoers最后面添加以下内容
 Defaults env_keep+=JAVA_HOME
 
 输入:sudo vi /etc/default/bigtop-utils  在 bigtop-utils 文件中添加以下内容
 export JAVA_HOME=/usr/java/latest
 然后执行以下命令
 source /etc/default/bigtop-utilssource /etc/default/bigtop-utils
 
 
5,异常
如果出现agent主机不良状况
Error, CM server guid updated, expected 85587073-270d-43d9-a44a-e213d9f7e45b, received 4c1402a5-8364-4598-a382-0c760710e897
,尝试运行以下命令
rm -rf /var/lib/cloudera-scm-agent/cm_guid
之后重启agent
service cloudera-scm-agent restart


异常
[root@master cloudera-scm-server]# service cloudera-scm-server start
Starting cloudera-scm-server:                              [失败]
[root@master cloudera-scm-server]# more cloudera-scm-server.out 
+======================================================================+
|      Error: JAVA_HOME is not set and Java could not be found         |
+----------------------------------------------------------------------+
| Please download the latest Oracle JDK from the Oracle Java web site  |
|  > http://www.oracle.com/technetwork/java/javase/index.html <        |
|                                                                      |
| Cloudera Manager requires Java 1.6 or later.                         |
| NOTE: This script will find Oracle Java whether you install using    |
|       the binary or the RPM based installer.                         |
+======================================================================+
[root@master cloudera-scm-server]# 
[root@master cloudera-scm-server]# mkdir -p /usr/java
[root@master cloudera-scm-server]# ln -s /app/jdk1.8.0_202  /usr/java/default
[root@master cloudera-scm-server]# service cloudera-scm-server start
Starting cloudera-scm-server:                              [确定]
[root@master cloudera-scm-server]# 

把jdk换成兼容的11版本就好了
Dec 03 10:51:57 bogon cm-server[3060]: +======================================================================+
Dec 03 10:51:57 bogon cm-server[3060]: |      Error: Unable to find a compatible version of Java on this host,|
Dec 03 10:51:57 bogon cm-server[3060]: |             either because JAVA_HOME has not been set or because a   |
Dec 03 10:51:57 bogon cm-server[3060]: |             compatible version of Java is not installed.             |
Dec 03 10:51:57 bogon cm-server[3060]: +----------------------------------------------------------------------+
Dec 03 10:51:57 bogon cm-server[3060]: | Please install either:                                               |
Dec 03 10:51:57 bogon cm-server[3060]: | - a supported version of the Oracle JDK from the Oracle Java web     |
Dec 03 10:51:57 bogon cm-server[3060]: |   site:                                                              |
Dec 03 10:51:57 bogon cm-server[3060]: |   > http://www.oracle.com/technetwork/java/javase/index.html <       |
Dec 03 10:51:57 bogon cm-server[3060]: | OR                                                                   |
Dec 03 10:51:57 bogon cm-server[3060]: | - a supported version of the OpenJDK from your OS vendor.  Help for  |
Dec 03 10:51:57 bogon cm-server[3060]: |   some OSes are available at:                                        |
Dec 03 10:51:57 bogon cm-server[3060]: |   > http://openjdk.java.net/install/ <                               |
Dec 03 10:51:57 bogon cm-server[3060]: |                                                                      |
Dec 03 10:51:57 bogon cm-server[3060]: | Cloudera Manager requires Oracle JDK or OpenJDK 1.8 or later.        |
Dec 03 10:51:57 bogon cm-server[3060]: | NOTE: Cloudera Manager will find the Oracle JDK when starting,       |
Dec 03 10:51:57 bogon cm-server[3060]: |       regardless of whether you installed the JDK using a binary     |
Dec 03 10:51:57 bogon cm-server[3060]: |       installer or the RPM-based installer.                          |
Dec 03 10:51:57 bogon cm-server[3060]: +======================================================================+


-bash: scp: command not found
执行命令
yum install openssh-clients


查看mysql的状态:
/usr/local/mysql/support-files/mysql.server status

安装Kafka服务
但是有提示:Before adding this service, ensure that either the Kafka parcel is activated or the Kafka package is installed. 这样子直接添加kafka的服务是不正确的
1.在Cloudera Manager页面找到主机->Parcel点击进入
2.在页面的Parcel列找到KAFKA并点击下载,下载完成后点击 分配 进行分配,然后点击 激活, 出现 已分配,已激活 证明分配激活成功
回到Cloudera Manager页通过添加服务添加kafka服务,但是在启动kafka服务的过程中又报错了:

报的错误是内存溢出错误,默认的是50M,
内存溢出错误问题解决:回到Cloudera Manager页面进入Kafka管理界面,点击配置项,然后在其配置栏中点击 kafka  broker  找到Heap Size of Broker这一栏,改成1G就可以了,然后保存更改重启该服务

cdh集群卸载:
查看安装了那些包
rpm -qa | grep cloudera

依次卸载安装包
rpm -e cloudera-manager-server-db-2-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-server-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el6.x86_64

rm -rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/x86_64/6/cloudera* /var/log/cloudera* /var/run/cloudera*
rm -rf /etc/cloudera*
rm -rf /opt/cloudera/parcel-cache /opt/cloudera/parcels

rm: 无法删除"/var/run/cloudera-scm-agent/process": 设备或资源忙
这个问题需要重启各个节点
然后再执行rm -rf 命令
重启后,登陆mysql ,删除scm库,重新执行初始化数据库命令。


agent节点启动过后立马死掉
[root@node2 cloudera-scm-agent]# netstat -tupnl |grep 19001
tcp        0      0 127.0.0.1:19001             0.0.0.0:*                   LISTEN      2857/python         
[root@node2 cloudera-scm-agent]# kill -9 2857

检查ssh 免密码登陆到自己,到各个子节点
检查ntp服务
---------------------------------------------------------------------------------------------------------------------    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章