CDH5.15.0安装

CDH5.15.0安装文档

一、基础环境

1.1 软件环境

NO.软件名称版本
1.操作系统Centos7.6 64 位
2.JDKjdk-8u191-linux-x64
3.Clouder Manager5.15.0
4.CDH5.15.0
5.数据库mysql57-community-release-el7-8.noarch.rpm
6.JDBCmysql-connector-java-5.1.46.jar

1.2 配置规划

NO.机器名称内网IP配置用途
1.hadoop202192.168.10.20232C/128Gb/1.5TB主,CM,MysqlDB
2.hadoop201192.168.10.20124C/64Gb/0.5TB
3.hadoop200192.168.10.20024C/64Gb/0.5TB

1.3 修改机器名(所有节点)

1)修改机器名称

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

这种方式,在Centos7中可以永久性改变主机名称。

或者

vi /etc/sysconfig/network
# 配置如下
NETWORKING=yes
HOSTNAME=[主机名]

  1. 每个节点机器,都要配置hosts
 # vi /etc/hosts   

内容都改为:

   127.0.0.1    localhost //建议保留此行
   192.168.10.202 hadoop202
   192.168.10.201 hadoop201
   192.168.10.200 hadoop200

注:配置好后可进行ping测试

1.4 设置防火墙(所有节点)

注:为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。

防火墙常用命令:

#firewall-cmd  --state(查询防火墙状态)
#systemctl stop firewalld.service(关闭防火墙)
#systemctl start firewalld.service(开启防火墙)
#systemctl disable firewalld.service(禁止firewall开机启动)

1.5 配置免密登录SSH

注:将子节点设置为从主节点ssh无密码登陆(主节点访问从节点需要无密码互通,否则后面会出现问题)

在主节点上执行:

# cd ~ //进入到 根目录
# ssh-keygen -t rsa

一路回车,生成无密码的密钥对。

在这里插入图片描述

把公钥拷贝至所有从服务器上:

# cd /root/.ssh  //查看公钥存放目录
# cp id_rsa.pub authorized_keys //将公钥拷贝成authorized_keys
# chmod 600 authorized_keys

#发送公钥
# ssh-copy-id -i hadoop202
# ssh-copy-id -i hadoop201
# ssh-copy-id -i hadoop200

注:配置完后可进行ssh +主机名进行测试

1.6 关闭SELINUX(所有节点)

  1. 关闭linux SELINUX安全内核

    # setenforce 0 (临时生效)
    
  2. 修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

    # vi /etc/selinux/config
    # 内容增加:
    SELINUX=disabled
    
  3. 重启后生效

    # reboot
    
  4. 查看SELINUX是否关闭:

    #sestatus
    

注:在Centos7中遇到SELINUX无法关闭时,重新启动机器可恢复正常

1.7 配置NTP服务

注:集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。

所有节点安装相关组件:

# yum install  ntp  ntpdate  -y

NTP服务端(主节点):

  1. 查找时间同步服务器http://www.pool.ntp.org/zone/asia:
    在这里插入图片描述

  2. 编辑 /etc/ntp.conf:1

    # vi /etc/ntp.conf
    //在文件中输入上面网页内容:
    
    server 0.asia.pool.ntp.org
    server 1.asia.pool.ntp.org
    server 2.asia.pool.ntp.org
    server 3.asia.pool.ntp.org
    
  3. 启动ntp服务:

    # systemctl start  ntpd
    
  4. 配置开机启动:

    # systemctl enable  ntpd.service 
    

注意:如果ntpd 开机启动失效,有可能是因为安装了chronyd 并且是开机自启状态,所以导致ntpd开机自启失败。

# 查看  chronyd设置状态
#systemctl status chronyd

显示如下:
在这里插入图片描述

以上显示表明,chronyd显示为开机启动状态。

相关操作:

#systemctl disable chronyd.service //将chronyd设为禁用状态

此时,NTP的服务开机自启动完成!

  1. 检查是否设置成功【刚启动时需要等10分钟才可以进行更新。会出现错误== no server suitable for synchronization found==】:

    # ntpq  -p
    //更新时间
    #timedatectl 
    

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

  1. 远程客户端时间同步测试

    # date
    #ntpdate 192.168.0.202
    

    192.168.0.202是NTP服务端IP,显示如下信息,测试成功:
    在这里插入图片描述

  2. 客户端设置计划任务,每30分钟同步时间

    #crontab -e 
    //加入内容:
    0-59/30 * * * * /usr/sbin/ntpdate 192.168.0.202 && /sbin/hwclock -w
    
  3. 设置定时任务开机启动

    //设置开机启动
    # systemctl enable crond.service
    
    //查看状态
    # systemctl status crond
    

二、安装jdk

jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  1. CentOS系统一般自带OpenJdk,需要卸载掉自带的OpenJdk,使用

    # rpm -qa | grep java //查看是否安装java相关的包
    
  2. 卸载相关包

    # rpm -e –nodeps  包名
    
  3. 安装相关包

    #rpm -ivh jdk-8u151-linux-x64.rpm
    

配置JAVA_HOME环境变量:

  1. 修改/etc/profile文件配置环境变量,执行命令

    # vi /etc/profile  
    # 在profile文件最后加入如下内容,默认安装路径/usr/java/
    export JAVA_HOME=[安装路径]/jdk1.8.0_151
    export PATH=$PATH:$JAVA_HOME/bin 
    
  2. 执行命令使其生效

    #source /etc/profile   //使修改立即生效
    #echo $PATH   //查看PATH值
    #echo $JAVA_HOME   //查看JAVA_HOME值
    

注:在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/ bashrc文件配置环境变量

#vi /etc/bashrc
//在文件最后加入:
export JAVA_HOME=[安装路径]/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin 
//使修改立即生效
# source /etc/bashrc 
//查看JAVA_HOME值
#echo $JAVA_HOME  

三、Mysql安装(主节点)

  1. 在master节点安装mysql服务,下载mysql的repo源

    # wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
    
  2. 安装mysql包

    # rpm -ivh mysql57-community-release-el7-8.noarch.rpm
    
  3. 安装mysql服务

    # yum install mysql-server  //如果提示镜像下载未成功需要多次尝试
    
  4. 启动mysqld服务

    # service mysqld restart
    
  5. 查看原始密码

    # grep "password" /var/log/mysqld.log
    
  6. 使用查询出的原始密码登录

    # mysql -uroot -p[原始密码]
    

登录进mysql后:

  1. 设置root用户密码:

    mysql> alter user 'root'@'localhost' identified by 'Master01#';
    mysql> flush privileges;
    ##忘记密码之后登录方式/etc/my.cnf中修改[mysqld]最后添加:skip-grant-tables
    mysql> update user set authentication_string=password("root") where user="root";
    ## 密码严格问题设置为低严格,最少三个字符
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    mysql> set global validate_password_policy=0;
    mysql> set global validate_password_length=3;
    
  2. 设置开机启动

    vim /etc/rc.local 
    ##添加如下内容
    service mysqld status
    
  3. 配置外部工具连接mysql

    mysql> use mysql;
    mysql> select 'host' from user where user='root';
    mysql> update user set host='%' where user='root';
    mysql> exit;
    ##重启mysql服务,这时外部工具就可连接成功
    service mysqld restart
    

四、外部数据库安装与配置

创建CDH服务所需的数据库:

mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

创建密码并访问权限:

mysql>grant all privileges on hive.* to 'hive'@'%' identified by 'MasterHive01#' with grant option;
mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'MasterOozie01#' with grant option;
mysql> grant all privileges on hue.* to 'hue'@'%' identified by 'MasterHue01#' with grant option;
mysql> grant all privileges on scm.* to 'scm'@'%' identified by 'MasterScm01#' with grant option;
mysql> flush privileges;

查看数据库:
在这里插入图片描述

注:外部数据库只需要安装在一个节点上即可,我们使用mysql,它的主要作用是用来存储元数据,如hive,oozie等。我们使用主节点来安装mysql。

五、依赖软件安装

所有节点逐一检查一下以下的依赖包是否安装,如果没有,则使用yum install -y进行安装

# yum install -y bind-utils
# yum install -y cyrus-sasl-gssapi
# yum install -y cyrus-sasl-plain
# yum install -y fuse
# yum install -y fuse-libs
# yum install -y gcc
# yum install -y httpd
# yum install -y libxslt
# yum install -y mod_ssl
# yum install -y MySQL-python
# yum install -y openssl-devel
# yum install -y portmap
# yum install -y postgresql-server >= 8.4
# yum install -y psmisc
# yum install -y python >= 2.4.3-43
# yum install -y python-devel >= 2.4.3-43
# yum install -y python-psycopg2
# yum install -y python-setuptools
# yum install -y swig
# yum install -y perl
# //启动web服务器,并将之设置为自动启动:
# systemctl start httpd.service
# systemctl enable httpd.service

六、Cloudera Manager 安装

6.1 CM安装

官方安装文档:http://www.cloudera.com/documentation/enterprise/5-15-x.html

  1. 在master节点上cd 到/opt 目录上下载

    # wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
    # wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
    # wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
    # wget http://archive.cloudera.com/cdh5/parcels/5.15.0/manifest.json
    # wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
    
  2. 在每台服务器上创建CM使用的用户

    # useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    
  3. 在master节点执行如下操作

    # mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1 z.cdh5.15.0.p0.21-el7.parcel.sha //修改名称
    # tar -zxvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt/    //解压缩
    # mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo      //移动文件到parcel-repo中
    
  4. 将mysql-connector-java-5.1.46.tar.gz解压,生成mysql-connector-java-5.1.46。将mysql-connector-java-5.1.46下的mysql-connector-java-5.1.46-bin.jar
    copy到/usr/share/java(如没有则mkdir,新建该目录)和/opt/cm-5.15.0/share/cmf/lib目录下。

    # tar -zxf mysql-connector-java-5.1.46.tar.gz
    # cd mysql-connector-java-5.1.46
    # cp mysql-connector-java-5.1.46-bin.jar /opt/cm-5.15.0/share/cmf/lib
    # cp mysql-connector-java-5.1.46-bin.jar /usr/share/java
    
  5. 配置agnent,将server_hostg改为master

    # vi /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini
    
  6. 复制agent到其他节点

    # scp -r /opt/cm-5.15.0 geeky201:/opt
    # scp -r /opt/cm-5.15.0 geeky200:/opt
    
  7. 使用命令配置cm使用的元数据库

    # /opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -pGeeky.mysql.@admin1 --scm-host geeky202 scm scm MasterScm01#
    

在这里插入图片描述

注:见到类似上面截图的提示则为数据库设置成功,否则请检查数据库配置。

  1. 启动服务:

    # 在master上,启动主服务:
    # /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start
    # 在每台服务器上,启动代理服务:
    # /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
    

等候2~3分钟,系统会完成启动。启动后,就可以在master的7180端口访问scm服务,并进行cdh安装。如果超过10分钟仍无法启动,请检查/var/log/cloudera-scm-server/下的日志文件,并根据日志文件进行错误排查。

访问CM界面:

输入:http://192.168.0.202:7180/ 就可以访问到CM的管理界面用户名密码都是:admin
在这里插入图片描述

6.2 CM卸载

  1. 主节点上停止cm服务

    # /opt/cm-5.15.0/etc/init.d/cloudera-scm-server stop
    
  2. 所有节点上停止代理服务

    # /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent stop
    # umount /opt/cm-5.15.0/run/cloudera-scm-agent/process
    
  3. 所有节点上执行以下命令,清除/var/lib 下cdh的安装组件

    # rm -rf /var/lib/hadoop* /var/lib/hue /var/lib/hbase /var/lib/solr /var/lib/oozie /var/lib/hive /var/lib/cloudera-scm-server /var/lib/spark /var/lib/zookeeper /var/lib/kafka /var/lib/impala /var/lib/sqoop*
    # rm -rf /etc/hadoop* /etc/hbase* /etc/hive* /etc/hue /etc/impala /etc/solr /etc/sqoop* /etc/spark /etc/pig
    
  4. 所有节点上执行以下命令,杀掉相关进程

    # for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do sudo kill $(ps -u $u -o pid=); done
    
  5. 所有节点执行以下命令,删除相关的CDH安装包和CM目录

    # rm -rf /opt/cloudera/parcel-cache /opt/cloudera/parcels/opt/cloudera-manager/*
    
  6. 所有节点删除dfs目录中的内容

    # rm -rf /dfs/*
    

七、异常汇总

7.1 agent 启动异常

在这里插入图片描述
查看日志:/opt/cm-5.15.0/log/cloudera-scm-agent/cloudera-scm-agent.out

[05/Nov/2016 06:57:48 +0000] 5975 MainThread agent        INFO     SCM Agent Version: 5.15.0
Unable to create the pidfile.

解决:
每个节点上创建目录

mkdir /opt/cm-5.15.0/run/cloudera-scm-agent

# 再次启动成功
[root@master init.d]# /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent:                               [  OK  ]

7.2agent启动异常

$ tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
# 查看到报错信息,9000端口已经被占用
ChannelFailures: IOError("Port 9000 not free on 'vm3'",)
$ netstat -tunlp|grep 9000
tcp        0      0 10.171.133.79:9000          0.0.0.0:*                   LISTEN      4411/python2.6
# 删除pid,杀死端口占用的进程,然后重启
$ rm -rf cloudera-scm-agent.pid
$ kill -9 4411
$ service cloudera-scm-agent start
Starting cloudera-scm-agent:                               [  OK  ]
$ netstat -tunlp|grep 9000
tcp        0      0 10.171.133.79:9000          0.0.0.0:*                   LISTEN      6562/python2.6
$ service cloudera-scm-agent status
cloudera-scm-agent (pid  6562) is running...

7.3 初始化db时 报错GTID consistency: CREATE TABLE … SELECT.

这是由于安装mysql的配置问题,找到mysql配置修改如下

##################Replication#####################
gtid_mode = off
enforce_gtid_consistency = off

7.4 agent启动异常

在这里插入图片描述
解决:

ps -ef |grep supervisor

然后kill掉对应服务

版权声明:本文为博主原创文章,转载请注明出处!
https://me.csdn.net/qq_39657909

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页