大数据 -- Cloudera Manager构建大数据平台
一、Cloudera Manager介绍
Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装、中心化管理、集群监控、报警等功能,使得安装集群从几天的时间缩短在几小时以内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
开始之前其实有很多的工作要做,比如配置IP地址、关闭防火墙、配置SSH免密登录等,这些都是比较常规的环境配置,这里不再赘述,不懂者可以参考大数据 -- Hadoop集群环境搭建中部分内容。
附上大数据“前世今生”的一篇文章给大家,希望大家对大数据有更多的了解,大数据的前世今生:诞生、发展、未来?
1、CM技术架构
- Agent:安装在每台主机上,负责启动和停止的过程、拆包配置、触发装置和监控主机;
- Management Service:一组执行各种监控、警报和报告功能角色的服务;
- Database:存储配置和监视信息,通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行;例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库;
- Cloudera Repository:软件由Cloudera 管理分布存储库;
- Clients:是用于与服务器进行交互的接口;
- Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理;
- API :与开发人员创建自定义的Cloudera Manager应用程序的API;
2、CM四大功能
- 管理:对集群进行管理,如添加、删除节点等操作;
- 监控:监控集群的健康情况,对设备的各种指标和系统运行情况进行全面监控;
- 诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案;
- 集成:对hadoop的多种组件进行整合;
3、分析表格
Cloudera Manager出现背景 | 当一个开源的产品做的越来越好以后,就有人希望从开源产品里面赚钱。在Hadoop开源中赚钱的标志是Cloudera公司在2008年诞生。 |
解决什么问题 |
大量减少集群部署时间 升级和各个生态技术的兼容性强 支持Kerberos安全认证 易于维护 修复很多hadoop的bug 基于web界面的管理集群方式 能够监控集群的运行状态并告警 |
劣势 |
系统依赖高 自定制源代码难度高 带有付费产品功能 涉及到厂商锁定的问题 |
4、本教程使用虚拟机配置
根据自己的PC进行配置:
192.168.1.101(zy1) | 192.168.1.102(zy2) | 192.168.1.103(zy3) | |
角色 | Server/Agent | Agent | Agent |
CPU | 4核 | 2核 | 2核 |
内存 | 16G | 8G | 4G |
二、集群时间同步
之所以要做服务器集群的时间同步,我想大家应该不言而喻了吧,CM要求各个节点之间的时间不能够相差太多,为的就是保证集群的统一管理和减少不必要的错误、麻烦。还有一个原因就是一般企业里用到的服务器是不能够连接外网的,所以第一步我们就开始做服务器集群时间同步。
1、配置时间为中国的时区
CST为中国中部标准时间,如果不是CST,将所有主机都修改为CST:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、ntp时间同步服务器安装
这里需要安装一个时间主服务器,其它节点的时间分别去同步这台时间主服务器,这样就可以统一去管理时间了,ntp刚好提供了这一功能,其它的节点按照时间间隔进行不断同步,达到时间一致的效果。
每台服务器都需要安装ntp,通过yum进行安装:
yum install -y ntp
3、配置ntp
1)修改所有节点的/etc/ntp.conf
vi /etc/ntp.conf
restrict 192.168.1.10x nomodify notrap nopeer noquery //当前节点IP地址 restrict 192.168.1.1 mask 255.255.255.0 nomodify notrap //集群所在网段的网关(Gateway),子网掩码(Genmask)
2)选择一个主节点zy1,修改其/etc/ntp.conf
vi /etc/ntp.conf
在server部分添加一下部分,并注释掉server 0 ~ n
server 127.127.1.0 Fudge 127.127.1.0 stratum 10
3)主节点以外,继续修改/etc/ntp.conf
vi /etc/ntp.conf
在server部分添加如下语句,将server指向主节点:
server 192.168.1.101 Fudge 192.168.1.101 stratum 10
修改后,各个节点配置如下:
主节点(zy1):
其它节点zy2:
节点zy3:
4、启动ntp服务
执行以下命令后,ntp服务就会启动成功,并开启了自启动:
systemctl start ntpd.service
systemctl enable ntpd.service
service ntpd status
三 设置SELINUX
编辑/etc/sysconfig/selinux文件,把把里边的一行改为SELINUX=disabled**,然后重启就可以了:
四 安装mysql数据库
mysql数据安装在哪都可以,只要能够访问到这个数据库就可以,这里将数据库安装在zy1节点上,具体可以参考博客:Linux下yum方式安装mysql 以及卸载。
1、直接使用yum -y install命令安装mysql是无法安装mysql的高级版本,需要先安装带有可用的mysql5系列社区版资源的rpm包,输入如下命令进行安装:
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2、 查看mysql可用版, 然后使用如下命令查看mysql的可用版本:
yum repolist enabled | grep "mysql.*-community.*"
3、然后就可以开始安装mysql了,一般我们只需要安装mysql-server和mysql-client就可以了:
yum -y install mysql-community-server
4、mysql安装成功后使用命令开启服务:
systemctl start mysql
可以使用命令让mysq服务加入开机启动(可选):
systemctl enable mysqld
使用命令查看mysql状态:
systemctl status mysql
5) 创建用户并登录mysql,使用命令创建用户:
mysqladmin -u root password 123456aa
6) 使用navicat连接mysql,在使用navicat连接mysql之前需要先给用户授予远程登录权限,否则将无法连接mysql。在本机登录mysql后,使用如下命令进行远程登录授权:
grant all privileges on *.* to 'root'@'%' identified by '123456aa' with grant option
其中root是用户名,123456aa是密码;上述命令是允许使用该用户名和密码从任何主机访问该服务器上的mysql,然后执行如下命令:
flush privileges
systemctl restart mysql
7) 本机终端连接:
mysql -u root -p
然后输入密码即可:
8) 卸载
查看已安装的mysql 命令:
rpm -qa | grep -i mysql
yum remove mysql-xxx依次卸载,直到mysql的其它依赖全部卸载掉为止;
使用命令查看mysql相关的文件目录:
find / -name mysql
五、安装Cloudera Manager
1、下载CM安装文件并且进行配置
将文件下载到主节点/opt/bigdata目录下:http://archive.cloudera.com/cm5/cm/5/
wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz
解压:
tar -xzvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/bigdata/cloudera
在解压路径下出现两个子目录cloudera和cm-5.16.2,其中cm-5.16.2存放CM框架本身的配置、依赖库、启动脚本等文件。
修改文件/opt/bigdata/cloudera/cm-5.16.2/etc/cloudera-scm-agent/config.ini指向server所在的服务器地址:
vim /opt/bigdata/cloudera/cm-5.16.2/etc/cloudera-scm-agent/config.ini
下载mysql驱动包,放在/opt/bigdata/cloudera/cm-5.16.2/share/cmd/lib目录下:
cd /opt/bigdata/cloudera/cm-5.16.2/share/cmf/lib wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
拷贝CM文件夹给其它节点:
scp -r /opt/bigdata/cloudera/ zy2:/opt/bigdata/ scp -r /opt/bigdata/cloudera/ zy3:/opt/bigdata/
在所有节点创建cloudera Manager用户cloudera-scm:
useradd --system --home=/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm 详解: useradd --system 表示创建的是系统用户 --home=/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-server 指定用户主目录路径 --no-create-home 不创建用户主目录 --shell=/bin/false 不作为一个登陆用户 --comment "Cloudera SCM User" cloudera-scm 用户名
验证:# cat /etc/passwd | grep cloudera-scm。
2、下载CDH文件(主节点操作)
首先来介绍什么是CDH:
- CDH全称Cloudera’s Distribution Including Apache Hadoop,是面向hadoop的企业级部署,是hadoop(hadoop、flume、hbase等等)发行版本之一;
- 由Cloudera公司维护,基于稳定版本的Apache Hadoop构建;
- 提供了Hadoop的核心:可扩展存储、分布式计算;
- 基于web的用户界面;
hadoop包含很多发行版本,如:
- Apache Hadoop;
- Cloudera’s Distribution Including Apache Hadoop(CDH);
- Hortonworks Data Platform (HDP);
- MapR;
- EMR;
在主节点输入 mkdir /opt/cloudera/parcel-repo/ 新建文件夹,然后赋予权限:
mkdir /opt/bigdata/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/bigdata/cloudera/parcel-repo/
在所有子节点输入 mkdir /opt/cloudera/parcels/ 新建文件夹,然后赋予权限:
mkdir /opt/bigdata/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/bigdata/cloudera/parcels/
下载CDH安装文件http://archive.cloudera.com/cdh5/parcels/5.14.0/到CM的parcel-repo包里,就可以通过parcel包进行安装CDH了,安装和升级都更加的方便了。
文件名中的el7代表CentOS7版本,如果是别的版本请下载其它的版本。
- CM只能识别不高于自身版本低的CDH;
- 修改**.sha1结尾的文件名为.sha**,这才能够被CM识别;
CDH源,去掉校验码文件结尾的1:
mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha
官网下载比较慢,推荐到网盘下载: https://pan.baidu.com/s/1JC-vpYH7SWBwju9C8DkVPw 密码: 26v8.
此外,也可以卸载其它的parcel包,如kafka,也放在该路径下:
3、主节点安装cloudera-scm-server
正常安装 cloudera-scm-server 时,安装 scm 库是通过脚本 /opt/bigdata/cloudera/cm-5.16.2/schema/scm_prepare_database.sh 来自动建库的。进入/opt/bigdata/cloudera/cm-5.16.2/share/cmf/schema目录下,执行以下命令:
./scm_prepare_database.sh mysql cm -h zy1 -uroot -p'123456aa' --scm-host zy1 scm scm scm
其语法格式如下:
./scm_prepare_database.sh mysql <mysql-database> -h<mysql-host> -u<mysql-user> -p<mysql-pwd> --scm-host <scm-host> <scm-user> <scm-dbname> <scm-pwd>
-
<mysql-database>,<mysql-host>,<mysql-user> <mysql-pwd> 是需要创建的 scm 库,对应的 mysql 的主机名,用户名和登录密码;
- <scm-host>,<scm_user>,<scm-dbname>,<scm-pwd>分别对应 cloudera-scm-server 部署在的主机名,scm 库的登录用户,scm 库的库名,scm 库的登录密码;
如果执行失败,可以参考博客:安装CDH在初始化CM数据库的时候出现mysql数据库连接的问题的解决方案。
看到successfully则表明初始化成功; 输入mysql -uroot -p,进入mysql,输入show databases:
六、CM启动 & CDH安装
1、主节点中进入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目录,输入 ./cloudera-scm-server start 启动服务端;
./cloudera-scm-server start
如果想查看状态:
./cloudera-scm-server status
2、在所有从节点进入 /opt/bigdata/cloudera/cm-5.16.2/etc/init.d/ 目录,输入 ./cloudera-scm-agent start 启动agent:
./cloudera-scm-agent start
3、最后启动主节点代理:
./cloudera-scm-agent start
4、打开浏览器,访问主节点的7180端口,首次启动需要多等待一些时间才能访问到,因为cloudera manager正在初始化一些数据表(有些浏览器可能会无法访问,这里我用谷歌可以访问到这个页面):
进入页面后,用户名和密码都是 admin,点击登陆,如下图:
如果进不去该页面,在主节点查看7180和7182端口是否打开:
如果端口没有打开,查看代理和服务的状态,并尝试重启。
成功登陆后,进入下图,接受许可,点击继续:
选择60天试用版本,如下图,然后继续:
进入下图,点击继续:
点击选项卡中的“当前管理的主机”,将所有主机都勾选,然后点击继续,如下图:
进入下图,点击更多选项:
根据parcel实际路径修改以下两项;
修改为:
然后重启代理和服务:
./cloudera-scm-server restart
./cloudera-scm-agent restart
然后稍等几分钟,从http://192.168.1.101:7180/cmf/express-wizard/hosts页面开始,重新加载页面,勾选所有主机,步骤同上;然后进入如下界面:
等待CM自动安装配置CDH,如下图:
安装完成后点击继续,检查主机正确性如下图:
检验可能遇到以下问题:
在所有节点输入 sysctl vm.swappiness=10 按照建议,更改交换空间;
在所有节点输入 vi /etc/sysctl.conf ,在最后加入 vm.swappiness=10 ,使配置永久生效;
在所有节点执行echo never > /sys/kernel/mm/transparent_hugepage/defrag和echo never > /sys/kernel/mm/transparent_hugepage/enabled;
在所有节点输入vim /etc/rc.local ,然后将上面两条命令添加到该初始化脚本中,以便在系统重启时予以设置;
集群设置,这里我选择自定义,选择自己需要的环境,我只选择了zookeeper(安装的越多,出错概率更大,其它的可以后面一一安装)如下图,然后点击继续:
注意:先不要选择kafka,这个需要激活,我们可以后面在安装。
服务配置一般按默认就可以,如需特殊调整,自行设置,然后点击继续,这里默认配置如下:
接下来数据库设置,输入对应库的名称,用户名和密码,然后点击测试连接,当测试通过后,点击继续:
由于之前我们没有创建相应的数据库,因此需要连接mysql、创建数据库:
create database manager DEFAULT CHARACTER SET utf8;
create database monitor DEFAULT CHARACTER SET utf8;
接下来是集群审核页面,这里默认就可以,点击继续:
点击继续:
安装完成如下图:
七、启动Hdfs
登录192.168.1.101:7180页面,如下
1、部署HDFS
点击操作,添加服务:
勾选HDFS:
如果出现类似以下的错误:
进入/opt/bigdata/cloudera/cm-5.16.2/run/cloudera-scm-agent/process目录下,检查Hadoop最新的部署文件:
检查Hadoop的配置文件:
vim hadoop-env.sh
可以发现配置的JAVA_HOME默认是 /usr/lib/j2sdk1.5-sun ,而我们的JAVA_HOME路径是/usr/java/jdk1.8.0_231/,因此需要创建一个软链接,使得 /usr/lib/j2sdk1.5-sun指向/usr/java/jdk1.8.0_231/:
ln -s /usr/java/jdk1.8.0_231/ /usr/lib/j2sdk1.5-sun
这样就可以正常安装启动了。
参考文章
[1]Cloudera Manager(简称CM)+CDH构建大数据平台(转载)