前期准备和说明
简单来说,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
注意:一定要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
[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
-
下载parcels,下载地址:https://archive.cloudera.com/cdh6/6.3.2/parcels/ (这些资源已经失效了,可以加我微信:suhuayue001联系我获取)
-
下载标黄的四项
- 修改.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
打开CM WEB UI,http://<主节点IP>:7180
- 开始安装集群
- 进入欢迎页
- 接受许可
- 选择安装版本
- 进入集群安装
- 填写集群名称(自定义)
- 选择当前管理的主机(在该页不要填写IP去搜索节点,应点击’当前管理的主机‘)
- 选择parcel包(画红线部分是检测到的本地parcel包,如果不显示说明没被检测到,可尝试等待刷新页面或回退到欢迎页面重启cm server)
- 开始向所有节点分发部署安装包(时间需要等待)
- 进行安装前环境检查inspect(可以根据检查结果修正环境配置,修正后重新检查并继续)

- 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装
- 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装
- 大数据服务角色分配(非生产环境按照默认即可)
如果有问题,后面可以返回来修改
- 填写数据库信息(有些大数据服务需要数据库支持,例如hive、oozie等,所以需填写数据库信息)
- 修改大数据服务相关数据目录路径,例如hdfs、kafka数据目录等
- 开始安装服务
- 服务安装完成
到此服务安装完成,可以尽情的玩耍了。因为是测试环境,里面有一些告警和错误可以忽略。
下一篇将介绍一下在安装过程中遇到的一些问题。请参考《CM+CDH安装大数据服务集合的一些问题》
2 条回复
[…] 接上篇《CM+Cdh集群构建—大数据平台软件hdfs、hive、hbase、yarn(MapReduce)、kudu、kafk… […]
[…] 参考《CM+CDH集群构建—大数据平台软件hdfs、hive、hbase、yarn(MapReduce)、kudu、kafk… […]