技术博文 · 2021-06-29 2

CM+CDH集群构建—大数据平台软件hdfs、hive、hbase、yarn(MapReduce)、kudu、kafka、zook全家桶控制台式安装

前期准备和说明

简单来说,Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

cloudera manager有四大功能:
  (1)管理:对集群进行管理,如添加、删除节点等操作。
  (2)监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
  (3)诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
  (4)集成:对hadoop的多组件进行整合。

因为是测试环境搭建,使用了3台服务器,前置环境如下表所示:

序号 IP hostname
1 192.168.0.244 kudu001
2 192.168.0.244 kudu002
3 192.168.0.244 kudu003
NO. 软件名称 版本
1 操作系统 CentOS Linux release 7.9.2009 (Core)
2 JDK openjdk version "1.8.0_292"
3 Cloudera Manager 6.3.1
4 CDH 6.3.2
5 数据库 MySQL5.7.34
6 JDBC驱动 5.1.49

各资源下载地址:

(未用到)kudu:https://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/

(未用到)apapche集合:http://archive.apache.org/dist/

jdbc:https://downloads.mysql.com/archives/c-j/

CM6.3.1:链接: https://pan.baidu.com/s/1XFH1E9poOdaclVxfi6HZ8A 提取码: 请联系WX:suhuayue001

CDH6.3.2:链接: https://pan.baidu.com/s/1thGP-RmbRgcaXjcxRGzYmQ 提取码: 请联系WX:suhuayue001,备注CDH6.3.2

hosts配置

在hosts文件末尾加配置:sudo vim /etc/hosts

192.168.0.244 kudu001
192.168.0.245 kudu002
192.168.0.246 kudu003

JDK安装

yum install java-1.8.0-openjdk-devel.x86_64

验证是否安装成功:java -version

image-20210625154926220

注意:一定要64位,如果系统是64位,不然启动hdfs的时候会提示:libhadoop.so.1.0.0 无法加载的问题,原因是libhadoop依赖 64位的libjvm.so

关闭selinux

sudo vim /etc/selinux/config
SELINUX=disabled 

安装依赖

sudo yum install -y bind-utils psmisc libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python /lib/lsb/init-functions libpq.so.5
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
sudo rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
sudo yum install python27 

SSH免登录配置

当前家目录执行:ssh-keygen 在.ssh下生成公私钥

[root@kudu001 ~]# cd .ssh/
[root@kudu001 .ssh]# ls
known_hosts
[root@kudu001 .ssh]# ssh-keygen 
[root@kudu001 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts

image-20210625155333037

[root@kudu001 .ssh]# pwd
/root/.ssh
[root@kudu001 .ssh]# ssh-copy-id -i ./id_rsa.pub root@kudu001
[root@kudu001 .ssh]# ssh-copy-id -i ./id_rsa.pub root@kudu002
[root@kudu001 .ssh]# ssh-copy-id -i ./id_rsa.pub root@kudu003

集群时间同步

# 安装NTP服务
[root@kudu001 .ssh]# yum install ntp
[root@kudu001 .ssh]# vim /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
# 开启NTP服务
[root@kudu001 .ssh]# systemctl start ntpd
# 设置自启动
[root@kudu001 .ssh]# systemctl enable ntpd
# 查看同步状态
[root@kudu001 .ssh]# ntpdc -np
     remote           local      st poll reach  delay   offset    disp
=======================================================================
=202.118.1.81    192.168.0.244    1 1024  377 0.05493 -0.006918 0.13902
=119.28.206.193  192.168.0.244    2 1024  377 0.03951 -0.001037 0.12257
=162.159.200.1   192.168.0.244    3 1024    0 0.18015 -0.017656 2.83130
=202.28.93.5     192.168.0.244    2 1024  377 0.22147  0.063639 0.12463
*61.239.100.228  192.168.0.244    1 1024  377 0.04526  0.005554 0.13824
=108.59.2.24     192.168.0.244    2 1024  377 0.22493  0.000951 0.12367
=139.199.215.251 192.168.0.244    2 1024  177 0.03650  0.002585 0.13947
=111.230.189.174 192.168.0.244    2 1024  377 0.03149 -0.000373 0.12317

查看与时间同步服务器的时间偏差:ntpdc -c loopinfo

查看当前同步的时间服务器:ntpq -p

查看状态:ntpstat

安装CM

在主节点(代指安装cm server的节点)配置本地yum仓库

# 主节点安装httpd,提供yum仓库web服务,子节点可以通过访问这个web服务连接到主节点的yum源
yum install httpd -y 
# 主节点开启httpd
systemctl start httpd
# 主节点创建httpd文档目录,CDH安装包资源会放到这个目录被所有节点访问到
sudo mkdir -p /var/www/html/cloudera-repos/cm6
# 主节点下载cm6本地yum仓库压缩包,注意:现在下载CDH安装包需要账户认证,没有加我WX:suhuayue001联系我获取下载链接
wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
# 主节点解压本地yum仓库压缩包到刚才创建的httpd文档目录
tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1
# 主节点httpd文档目录赋权
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6
#在任意子节点验证httpd是否正常使用,尝试下载yum源中的一个RPM-GPG-KEY-cloudera文件,下载成功说明我们的httpd服务正常,并且yum源可以对外访问
wget http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
# 所有节点下载cloudera-manager.repo,注意:现在下载需要账户认证,没有认证的可以加我WX:suhuayue001联系我获取下载链接
wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/redhat7/yum/cloudera-manager.repo
# 所有节点将cloudera-manager.repo放置到/etc/yum.repos.d/目录,并修改下面两项内容后保存退出
baseurl=http://<主节点IP>/cloudera-repos/cm6
gpgkey=http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
# 所有节点导入GPG key
sudo rpm --import http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安装 6.3.1yum源

# 在主节点安装cloudera agent和cloudera server
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server -y
# 在其他子节点安装ccloudera agent
sudo yum install cloudera-manager-daemons cloudera-manager-agent -y

如果安装过程提示缺少libmysqlclient.so.18依赖则可以先执行如下命令安装:

sudo rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

这种情况一般是卸载mysql相关依赖时导致的。

安装mysql5.7.34数据库(最好将数据库安装在主节点)

请参考:《centos 7.9 yum安装mysql5.7》

在所有节点安装数据库(mysql)驱动

# 所有节点下载mysql驱动
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.49.tar.gz
# 解压
tar zxvf mysql-connector-java-5.1.46.tar.gz
# 创建数据库驱动存放路径
mkdir -p /usr/share/java/
# 将驱动包解压目录下的驱动jar移动到上面的路径下
cd mysql-connector-java-5.1.46
mv mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

创建大数据服务组件用到的数据库(下面创建了一些常用的)

# 登录mysql
mysql -uroot -p
# 登录后执行下面的sql
create database amon default character set utf8 default collate utf8_general_ci;
create database rman default character set utf8 default collate utf8_general_ci;
create database hue default character set utf8 default collate utf8_general_ci;
create database metastore default character set utf8 default collate utf8_general_ci;
create database sentry default character set utf8 default collate utf8_general_ci;
create database nav default character set utf8 default collate utf8_general_ci;
create database oozie default character set utf8 default collate utf8_general_ci;
create database hive default character set utf8 default collate utf8_general_ci;
grant all on *.* to 'bigdata'@'%' identified by 'Abcd!234';
flush privileges;

在主节点初始化CM数据库

# 使用root账号初始化cm数据库(密码自己设置)
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -uroot -p12345 scm scm 12345

脚本参数解释

scm_prepare_database.sh 【数据库类型】 -u【数据库登录用户】 -p【数据库登录密码】 【CDH要创建的数据库名称】 【CDH数据库用户名】 【CDH数据库用户密码】

安装parcels

img

  • 修改.sha文件名
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha将这四个文件移动到/opt/cloudera/parcel-repo下mv CDH-6.3.2* /opt/cloudera/parcel-repomv manifest.json /opt/cloudera/parcel-repo

在主节点开启CM server

# 开启CM serversystemctl start cloudera-scm-server

查看启动日志,启动日志里有些连接cloudera仓库失败的错误不用管。后面安装有错误的话一定要记得来看日志

sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.lo

在所有节点开启cm agent

一定要先开启cm agent再进入web管理端进行操作,当所有节点正确开启agent后,才会在web管理端看到当前管理的主机(3)(如图所示),看不到的话说明有问题,会提示缺少allkeys.asc文件

#修改cm agent配置,指定cm server的连接地址sudo vi /etc/cloudera-scm-agent/config.ini修改server_host=主节点IP#开启所有节点cm agentsudo systemctl start cloudera-scm-agent

image-20210629151707095

打开CM WEB UI,http://<主节点IP>:7180

  • 开始安装集群
    • 进入欢迎页

image-20210628112944760

image-20210628113119691

  • 接受许可

image-20210628113156694

  • 选择安装版本

image-20210628113440383

  • 进入集群安装

image-20210628113608361

  • 填写集群名称(自定义)

image-20210628113713407

  • 选择当前管理的主机(在该页不要填写IP去搜索节点,应点击’当前管理的主机‘)

image-20210628113757014

  • 选择parcel包(画红线部分是检测到的本地parcel包,如果不显示说明没被检测到,可尝试等待刷新页面或回退到欢迎页面重启cm server)

image-20210628113942621

  • 开始向所有节点分发部署安装包(时间需要等待)

image-20210628114033956

  • 进行安装前环境检查inspect(可以根据检查结果修正环境配置,修正后重新检查并继续)

![img](https://img-blog.suhuayue.com/blog/imagesinspect cluster.png)

image-20210628120318926

  • 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装

image-20210628120401495

  • 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装

image-20210628121044497

  • 大数据服务角色分配(非生产环境按照默认即可)

image-20210628121748354

如果有问题,后面可以返回来修改

image-20210628131324149

image-20210628131302190

  • 填写数据库信息(有些大数据服务需要数据库支持,例如hive、oozie等,所以需填写数据库信息)

image-20210628123224211

image-20210628123325853

  • 修改大数据服务相关数据目录路径,例如hdfs、kafka数据目录等

image-20210628124611627

image-20210628124710482

image-20210628124729923

image-20210628124747130

image-20210628125226276

  • 开始安装服务

image-20210628125253500

  • 服务安装完成

img

到此服务安装完成,可以尽情的玩耍了。因为是测试环境,里面有一些告警和错误可以忽略。

image-20210629155237533

下一篇将介绍一下在安装过程中遇到的一些问题。请参考《CM+CDH安装大数据服务集合的一些问题》

参考文档

Cloudera Manager and CDH QuickStart Guide

CDH6.3.2离线安装(整合kerberos)

CDH集群安装部署