Centos7.3 下CM6.3.1 CDH6.3.2离线安装
cdh6各 组件版本信息
https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_63_packaging.html#cdh_633_packaging
集群规划
hostname | cdh1 | cdh2 | cdh3 | cdh4 |
---|---|---|---|---|
IP | 192.168.147.201 | 192.168.147.202 | 192.168.147.203 | 192.168.147.204 |
内存 | 4g | 6g | 3g | 3g |
磁盘 | 50g | 50g | 50g | 50g |
cpu | 2 core | 2 core | 2 core | 2 core |
CM | server | agent | agent | agent |
ntp | server | client | client | client |
CDH6.X 官网:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_63_packaging.html
CM6.X 官网:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_release_notes.html
截至到目前,最新版CM6.3.1,CDH6.3.3。 本地下载也特别容易断开。传说某雷下载比网页下载快些。
一.下载
或者选择本地下载完后再上传linux
1.1 CM6.3.1下载
下载连接:https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/
CM6.3.1 因为我装了JDK 所有只下载了5个
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm //可以不下
另外下载ASC文件:https://archive.cloudera.com/cm6/6.3.1/allkeys.asc
百度网盘链接:https://pan.baidu.com/s/1kOU9bXqtzV9FIbFiMNaUzg
提取码:nj9h
1.2 CDH6.3.2下载:
下载连接:https://archive.cloudera.com/cdh6/6.3.2/parcels
下载这几个文件就可以了
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 //也许不用下
manifest.json
二.基础环境准备
2.1 修改主机名 重启生效
[root@xzc ~]# hostnamectl set-hostname cdh2
关闭防火墙
[root@xzc ~]# systemctl disable firewalld
[root@xzc ~]# systemctl status firewalld
2.2 关闭selinux
[root@xzc ~]# vim /etc/selinux/config //修改 selinux=disabled
2.3 添加内网映射
[root@xzc ~]# vim /etc/hosts
2.4 安装JDK并设置环境变量
[root@xzc ~]# vim /etc/profile
添加
export JAVA_HOME=/opt/soft/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
[root@xzc ~]# source /etc/profile
需要做个软连接到/usr/java/default
[root@xzc opt]# ln -s /opt/soft/jdk1.8.0_102 /usr/java/default
示意图
否则在安装cloudera manager的时候会报错java找不到
2.5 克隆虚拟机
每个克隆机做如下操作:
修改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
去掉UUID这行,并修改IPADDR为目标ip
重启network,检查新ip是否生效
注意: cloudera Manager 要求必须关闭IPV6,这是后发现的问题,关闭方法自查。
我的是参考这个配置生效:https://blog.csdn.net/bluishglc/article/details/41390785
三个克隆机ip都修改完后就可以继续用xshell等继续操作了
克隆机修改主机名,reboot 重启生效
[root@cdh2 ~]# hostnamectl set-hostname cdh1
[root@cdh2 ~]# hostnamectl set-hostname cdh3
[root@cdh2 ~]# hostnamectl set-hostname cdh4
2.6 配置免密登录
四个虚机分别生成密钥,可使用群发执行,一路三个小回车
[root@cdh1 ~]# ssh-keygen -t rsa
[root@cdh1 ~]# ssh-copy-id cdh1
[root@cdh1 ~]# ssh-copy-id cdh2
[root@cdh1 ~]# ssh-copy-id cdh3
[root@cdh1 ~]# ssh-copy-id cdh4
ssh 登陆验证
2.7 NTP时间同步
备注: 生产环境由于集群网络不通,只有一个跳板机通外网,导致配置NTP非常容易出错,以下配置都有问题。centos7以后可以停掉ntp,使用Chrony进行同步,比ntp好用很多
后续想使用kudu,对时间同步敏感。再者集群如果节点之间实践差距太大就会导致异常。cdh1作为server。cdh2 - 4 作为client
[root@cdh1 CMrepo]# rpm -q ntp //验证是否有ntp
[root@cdh1 CMrepo]# yum install -y ntp //如果没有 yum安装一个
[root@cdh1 CMrepo]# systemctl enable ntpd
[root@cdh1 CMrepo]# systemctl start ntpd
注释默认ntp服务地址,使用国内地址(有两个网站可以参考:https://www.pool.ntp.org/zone/cn 和 http://www.ntp.org.cn/pool.php#china 可以自行查找合适的ntp服务器)
[root@cdh1 ~]# vim /etc/ntp.conf //增加如下内容,
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap //这个注释掉 用#
#放行局域网来源,允许172.17.0.0-172.17.0.254网段中的服务器访问本ntp服务器进行时间同步
restrict 172.17.0.0 mask 255.255.255.0 nomodify notrap
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 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
restrict 0.cn.pool.ntp.org nomodify notrap noquery
restrict 1.cn.pool.ntp.org nomodify notrap noquery
restrict 2.cn.pool.ntp.org nomodify notrap noquery
restrict 3.cn.pool.ntp.org nomodify notrap noquery
#添加如下两行。外部时间服务器不可用时,以本地时间作为时间服务
server 127.0.0.1 # local clock
Fudge 127.0.0.1 stratum 10
修改完后重启
[root@cdh1 ~]# systemctl restart ntpd
修改cdh2 cdh3 cdh4。
注释掉默认ntp服务,使用我们自己配置的ntp服务器(即 cdh1 的ip),具体修改如下
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 //这个注释掉 用#
#配置允许上游时间服务器主动修改本机的时间,你自己ntp server的ip
server 192.168.147.201
restrict 192.168.147.201 nomodify notrap noquery
server 127.0.0.1 # local clock
Fudge 127.0.0.1 stratum 10
补充: 修改 /etc/sysconfig/ntpd
增加SYNC_HWCLOCK=yes 使用系统时间自动同步到硬件时间
增加-x 允许ntp服务在系统时间误差较大时也能正常工作
vim /etc/sysconfig/ntpd
# Command line options for ntpd
SYNC_HWCLOCK=yes
OPTIONS="-g -x"
示意:
[root@cdh4 ~]# systemctl restart ntpd //重启ntp
验证1:重启后可以使用ntpq -np 验证是否同步, 有*开头的是同步了,同时client机的**是server机的ip
验证2:ntpstat查看同步状态
[root@ngp0ihy3 ~]# ntpstat
同步成功示意图: 一般会延迟几分钟(3-5min)同步成功
验证3:ntptime检查ntp同步情况
ntp_gettime() returns code 5 (ERROR)是同步错误
code 0 (ok)是同步没问题
问题排查,查看/var/log/messages 里的ntp log进行排查
准备环境要求:https://docs.cloudera.com/documentation/enterprise/6/latest/topics/installation_reqts.html
python 版本要求2.6.X , 2.7.X
基础环境准备完毕!
三. 关系型数据库安装
集群的安装需要一个关系型数据库进行配置数据的存储,CDH支持 Oracle , Mysql, Postgrest, 以及一个内置数据库。我将安装采用mysql进行存储,只要在一个节点(CM server)上安装就可以了,具体要求查看上面环境准备要求链接:
CDH6可使用mysql8,jdbc 使用mysql-connector-java-5.1.48 可以,本文的5.1.26不可以
mysql5.7下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
要求使用5.1.26以上版本的jdbc驱动
jdbc下载地址:https://downloads.mysql.com/archives/c-j/
百度网盘:mysql-5.7.30
https://pan.baidu.com/s/1PBWD20KrQRkhAjHZlRXd-A 提取码:dpyh
mysql-connector-java-5.1.31
https://pan.baidu.com/s/13GCdmzzKmra25oPn1tkOpA 提取码:1f40
3.1 卸载mariadb,
安装mysql时候和centos7自带的数据库有冲突。
[root@cdh1 parcel-repo]# rpm -qa | grep mariadb
[root@cdh1 parcel-repo]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
如果之前卸载过mysql 查看var/lib/mysql/ 有残留就删除
3.2 安装mysql-5.7.30
mysql根据自己条件安装。5.7要求安装MySQL-shared-compat or MySQL-shared package
[root@cdh1 mysql5.7]# rpm -ivh
mysql-community-server-5.7.30-1.el7.x86_64.rpm
mysql-community-common-5.7.30-1.el7.x86_64.rpm
mysql-community-devel-5.7.30-1.el7.x86_64.rpm
mysql-community-libs*.rpm mysql-community-embedded*.rpm
mysql-community-client-5.7.30-1.el7.x86_64.rpm
启动mysql:
[root@cdh1 mysql5.7]# systemctl start mysqld
[root@cdh1 mysql5.7]# systemctl enable mysqld
[root@cdh1 mysql5.7]# systemctl status mysqld
配置mysql密码:
[root@cdh1 mysql5.7]# grep ‘temporary password’ /var/log/mysqld.log //获取初始密码
set global validate_password_policy=0;
set global validate_password_length=6;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
重新登陆验证。
3.3 建库并授权
在MYSQL中创建需要用到的数据库,后续安装cdh时候会用到:
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE rmon 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中创建集群所用的统一登陆用户授权:
mysql> CREATE USER 'cdh'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON *.* TO 'cdh'@'%';
Query OK, 0 rows affected (0.00 sec)
3.4 配置jdbc
将Mysql驱动包mysql-connector-java-5.1.31-bin.jar拷贝到cdh1下的目录: /usr/share/java/,并重命名
cp mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar
分发到其他节点。后续配置其他组件时候可能用到(下面不做也行 没用到)。
[root@cdh1 cloudera]# scp -r /usr/share/java/mysql-connector-java.jar root@cdh2:/usr/share/java/
[root@cdh1 cloudera]# scp -r /usr/share/java/mysql-connector-java.jar root@cdh3:/usr/share/java/
[root@cdh1 cloudera]# scp -r /usr/share/java/mysql-connector-java.jar
root@cdh4:/usr/share/java/
cm安装完后续还有一步 初始化cm数据库。
四 CM安装
4.1 布置CM安装包
上传CM相关包到 一个目录下/opt/cm6
cdh1上安装http和create repo
[root@cdh1 ~]# yum -y install httpd createrepo
启动httpd
服务并设置开机自启动:
[root@cdh1 ~]# systemctl start httpd [root@cdh1 ~]# systemctl enable
httpd
4.2 配置CM包yum源(manager节点)
CM6 移动到 /var/www/html/cloudera-repos,没有路径则创建
[root@cdh1 ~]# mkdir -p /var/www/html/cloudera-repos
[root@cdh1 opt]# mv cm6/ /var/www/html/cloudera-repos/
[root@cdh1 cm6]# createrepo . //创建repodata
接着在Cloudera Manager Server主机上创建cm6的repo文件(要把哪个节点作为Cloudera Manager Server节点,就在这个节点上创建repo文件):
[root@cdh1 cm6]# cd /etc/yum.repos.d/
[root@cdh1 yum.repos.d]# vim cloudera-manager.repo
添加如下内容:cdh1是自己host
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://cdh1/cloudera-repos/cm6
gpgcheck=0
enabled=1
[root@cdh1 yum.repos.d]# cat cloudera-manager.repo
建议把/etc/yum.repos.d 改名 /etc/yum.repos.d.bak, 然后/yum.repos.d下面只保留一个 cloudera-manager.repo 文件。避免后续yum instll时候,去远程库查找cdh包,安装完cdh再改回来就可以了。
保存,退出,然后执行yum clean all && yum makecache
命令,以後只要修改了就clean,makecache下:
验证是否成功,可通过外部浏览器访问(没配置window host文件的 主机名改成ip访问):http://cdh1/cloudera-repos/cm6/
4.3分发包
分发到其他三个节点的对应目录,并clean,makecache
[root@cdh1 yum.repos.d]# scp -r cloudera-manager.repo root@cdh2:$PWD
[root@cdh1 yum.repos.d]# scp -r cloudera-manager.repo root@cdh3:$PWD
[root@cdh1 yum.repos.d]# scp -r cloudera-manager.repo root@cdh4:$PWD
[[root@cdh2 ~]# yum clean all & yum makecache
[root@cdh3 ~]# yum clean all & yum makecache
[root@cdh4 ~]# yum clean all & yum makecache
4.4 安装CM server
[root@cdh1 yum.repos.d]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
配置本地 parcel 存储库
安装完CM后/opt/ 下会出现cloudera目录,上传cdh parcel 文件到/opt/cdh6
将parcel包移动到指定位置,之前忘了下manitest.json文件,我又补下了个
[root@cdh1 opt]# mv /opt/cdh6/* /opt/cloudera/parcel-repo/
进入 parcel-repo目录,生成 sha文件:
[root@master001 parcel-repo]# sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
[root@cdh1 parcel-repo]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
4.5 初始化CM的数据库
(因为数据库设置一个统一cdh 用户授权。这样的话方便些 )
执行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm cdh
也可参考这个命令:
# cd /opt/cloudera/cm/schema/
# ./scm_prepare_database.sh -h master01 -P 3306 mysql scm cdh 123456
参数说明: -h MysqlHost -P MysqlPort dbType dbName dbUser dbPasswd
4.6 安装 CM agent
所有agent节点做如下改动操作。
[root@cdh2 ~]# yum install -y cloudera-manager-daemons
cloudera-manager-agent[root@cdh3 ~]# yum install -y cloudera-manager-daemons
cloudera-manager-agent[root@cdh4 ~]# yum install -y cloudera-manager-daemons
cloudera-manager-agent
配置Agent文件:vim /etc/cloudera-scm-agent/config.ini
将 server_host=localhost
更改为: server_host=cdh1(Cm server所在主机)
4.7 启动 CM服务:
[root@cdh1 ~]# systemctl start cloudera-scm-server
[root@cdh1 ~]# systemctl enable cloudera-scm-server
[root@cdh2 ~]# systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
[root@cdh3 ~]# systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
[root@cdh4 ~]# systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
启动如果有问题查看log。/var/log/cloudera-scm-server,启动server 和agent 尽量一起启动否则报错:
浏览器登陆CM 管理界面验证:初始用户密码 admin/admin
后续是界面部署CDH。待更新。。。。