1. 环境

  1. Centos 7.6
  2. JDK 1.8
  3. Scala 2.11.8
  4. 服务器3台

2. 服务器搭建前环境准备

1.所有节点关闭防火墙
#查看防火墙状态
firewall-cmd --state
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
2.所有节点修改主机名
vim /etc/sysconfig/network
vim /etc/hostname
3.所有节点配置主机名与ip地址映射
vim /etc/hosts

centos离线升级git centos7离线升级_centos离线升级git

4.所有节点关闭SELINUX

修改配置文件/etc/selinux/config(重启生效),将SELINUX=enforcing 改为SELINUX=disabled

centos离线升级git centos7离线升级_cloudera_02

5.所有节点重启
reboot
6.所有节点配置ssh免密登录
  • 生成公钥和私钥
    任意目录下 ssh-keygen -t rsa , 然后敲 3 下回车,就会在 ~/.ssh 下生成两个文件 id_rsa(私钥)id_rsa.pub(公钥)
  • 将公钥拷贝到要免密登录的目标机器上
    进入~/.ssh目录,拷贝公钥 ssh-copy-id cdh02
    注意:**ssh 不会携带 /etc/profile,但是会携带 ~/.bashrc,建议在 ~/.bashrc 内添加 source /etc/profile **
7.所有节点安装JDK,配置环境变量

centos离线升级git centos7离线升级_mysql_03

8.所有节点安装Scala,配置环境变量

centos离线升级git centos7离线升级_cloudera_04

3. 安装Mysql

1.卸载系统自带的相关数据库
rpm -qa | grep mysql
rpm -qa | grep mariadb

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2.部署Mysql
tar -zxvf mysql-5.7.25-el7-x86_64.tar.gz -C /opt/module/
3.账号与权限
#添加账号
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

#创建data目录
mkdir /opt/module/mysql-5.7.25-el7-x86_64/data

#修改权限
chown -R mysql:mysql /opt/module/mysql-5.7.25-el7-x86_64/
4.初始化Mysql,获取root@localhost的初始密码
cd  /opt/module/mysql-5.7.25-el7-x86_64
./bin/mysqld --initialize --user=mysql --basedir=/opt/module/mysql-5.7.25-el7-x86_64 --datadir=/opt/module/mysql-5.7.25-el7-x86_64/data

centos离线升级git centos7离线升级_centos离线升级git_05

5.配置环境变量
vim  /etc/profile
source /etc/profile

centos离线升级git centos7离线升级_mysql_06

6.设置开机启动
#复制开机启动脚本到系统服务
cp /opt/module/mysql-5.7.25-el7-x86_64/support-files/mysql.server /etc/rc.d/init.d/mysqld
chown mysql:mysql /etc/rc.d/init.d/mysqld

# 修改默认的"basedir"与"datadir"
vim /etc/rc.d/init.d/mysqld
basedir=/opt/module/mysql-5.7.25-el7-x86_64
datadir=/opt/module/mysql-5.7.25-el7-x86_64/data

#添加开机启动脚本
chkconfig --add mysqld

#3:带网络的多用户,也就是所谓的纯字符模式
#5:图形界面的多用户模式
chkconfig --level 35 mysqld on
7.设置文件路径:log && pid && socket
# 日志路径
mkdir -p /var/log/mysqld
touch /var/log/mysqld/mysqld.log
chown -R mysql:mysql /var/log/mysqld/

# pid路径
mkdir -p /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld/

# socker路径
mkdir -p /var/lib/mysqld
chown -R mysql:mysql /var/lib/mysqld/
ln -s /var/lib/mysqld/mysql.sock /tmp/mysql.sock
8.设置my.cnf文件
# 注意"log-error","pid-file"与"socket"的路径
mkdir -p /opt/module/mysql-5.7.25-el7-x86_64/etc
vim  /opt/module/mysql-5.7.25-el7-x86_64/etc/my.cnf


[mysqld]
character-set-server=utf8
max_connections = 3000
log-error=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/lib/mysqld/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysql]
default-character-set=utf8

# 软链接
ln -s /opt/module/mysql-5.7.25-el7-x86_64/etc/my.cnf /etc/my.cnf

# 赋权
chown -R mysql:mysql /opt/module/mysql-5.7.25-el7-x86_64/etc/
9.启动Mysql
# 使用初始化密码登陆
mysql -uroot -p

set password=password(‘123456‘);
flush privileges;

# 远程登陆权限
grant all privileges on *.*  to  'root'@'%'  identified by '123456'  with grant option;
flush privileges;

# 查看账号
select user, host, authentication_string from mysql.user;

centos离线升级git centos7离线升级_cloudera_07

4.Cloudera Mnanger安装

CM下载地址:http://archive.cloudera.com/cm5/cm/5/ 离线库下载地址:http://archive.cloudera.com/cdh5/parcels

1.所有节点下载第三方依赖
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
2.创建CM需要的数据库
--集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

--hive数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

--oozie数据库
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

--hue数据库
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

centos离线升级git centos7离线升级_cloudera_08

3.解压 cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz (在cdh01上)
mkdir /opt/module/cloudera-manager
tar -zxvf /opt/software/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/module/cloudera-manager/
4.创建用户cloudera-scm(所有节点)
useradd --system --home=/opt/module/cloudera-manager/cm-5.16.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

# --system 创建一个系统账户
# --home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
# --no-create-home 不要创建用户的主目录
# --shell 用户的登录 shell 名
# --comment 用户的描述信息

注意:
Cloudera Manager默认用户为cloudera-scm,创建具有此名称的用户是最简单的方法。 安装完成后,将自动使用此用户。

5.配置CM Agent
vim /opt/module/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini

centos离线升级git centos7离线升级_java_09

6.配置CM的数据库
1.拷贝mysql jar文件到目录 /usr/share/java/
mkdir /usr/share/java/
cp /opt/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java/

#注意jar包名称要修改为mysql-connector-java.jar
mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar  /usr/share/java/mysql-connector-java.jar
2.在mysql中创建cm库
/opt/module/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hcdh01 -uroot -p123456 --scm-host cdh01 scm scm scm

## -h:Database host
## -u:Database username
## -p:Database Password
## --scm-host:SCM server's hostname

centos离线升级git centos7离线升级_cloudera_10

7.分发cloudera-manager
scp -r /opt/module/cloudera-manager/ cdh02:/opt/module/
scp -r /opt/module/cloudera-manager/ cdh03:/opt/module/
8.创建Parcel-repo 目录(cdh01)
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

cp /opt/software/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/

cp /opt/software/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha /opt/cloudera/parcel-repo/

cp /opt/software/manifest.json /opt/cloudera/parcel-repo/

centos离线升级git centos7离线升级_cloudera_11

9.在Agent 节点(cdh01,cdh02,cdh03)创建目录/opt/cloudera/parcels
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
10.分发Parcel-repo
scp -r /opt/cloudera/ cdh02:/opt/
scp -r /opt/cloudera/ cdh03:/opt/
11.启动和关闭CM Server&Agent 服务

服务节点:cdh01

/opt/module/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start

centos离线升级git centos7离线升级_cloudera_12

工作节点:cdh01,cdh02,cdh03

/opt/module/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start

centos离线升级git centos7离线升级_mysql_13

注意:启动过程非常慢,Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。

12.访问http://xxx:7180,账号密码:admin

centos离线升级git centos7离线升级_mysql_14

5.安装CDH

1.最终用户许可条款和条件

centos离线升级git centos7离线升级_mysql_15

2.部署版本

centos离线升级git centos7离线升级_centos离线升级git_16

3.指定集群服务的安装节点

centos离线升级git centos7离线升级_cloudera_17

4.选择CDH版本

centos离线升级git centos7离线升级_java_18

5.集群安装,安装速度视网络情况而定

centos离线升级git centos7离线升级_mysql_19

报错1:主机运行状况不良!原因:CM的集群是Server-Agent模式的,那么必须有一个唯一的id来标识Server和Agent属于同一个集群,在Agent端就是使用cm_guid文件来记录id的;假设server端重新安装了一遍,重新构建集群,而agent没有重新安装,那么他们的id是一定不同的,就会造成上面的异常。解决:删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复

rm -rfv /opt/module/cloudera-manager/cm-5.16.1/lib/cloudera-scm-agent/cm_guid

报错2:分发parcel卡住

机器的hosts文件内容不一致!有的配置没有localhost!
把localhost这个域名添加回去:
127.0.0.1 localhost
6.检查主机正确性

centos离线升级git centos7离线升级_cloudera_20

7.群集设置,安装服务(选择自定义服务)

centos离线升级git centos7离线升级_mysql_21

8.分配角色

centos离线升级git centos7离线升级_mysql_22

9.数据库设置

centos离线升级git centos7离线升级_java_23

10.审核更改

centos离线升级git centos7离线升级_mysql_24

11.首次运行

centos离线升级git centos7离线升级_mysql_25

12.服务安装完成