近期因工作需要,对CDHcm管理节点的高可用做了些相关的测试,测试大概分2部分。具体如下,希望有兴趣的同学可以多交流学习。
1. cm节点关于postgres数据库的备用节点高可用。
2. cm节点关于mysql数据库的备用节点高可用。
测试需求:因线上cm管理节点是单点,一旦cm管理节点的服务器宕机,那么整个CDH集群的管理就受到影响。主要是不方便管理。如果熟悉相关的命令,则可以用命令管理。
测试目的:搭建一套备用的cm管理节点,并能顺利的接管主cm节点的相关服务。
测试 1. cm管理节点以mysql为主的。这里测试CM版本为5.3.3
测试步骤:
1. 选择一台要做备机的服务器,安装cm管理节点。
完成如下5个文件的准备:
cloudera-manager-el6-cm5.3.3_x86_64.tar
CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel
CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha
manifest.json
mysql-connector-java-5.1.35-bin.jar
解压manager节点,并拷贝解压后的cloudera,cm-5.3.3 到/opt目录下;
tar -xvf cloudera-manager-el6-cm5.3.3_x86_64.tar -C /opt/
cp /root/mysql-connector-java-5.1.35-bin.jar /opt/cm-5.3.3/share/cmf/lib/ //把mysql驱动放到对应的位置
mv /root/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel* /opt/cloudera/parcel-repo/ //把CDH包,还有manifest.json放到对应的位置,并重命名CDH...sha1文件名,去掉最后的数字1.
mv /root/manifest.json /opt/cloudera/parcel-repo/
mv /opt/cloudera/parcel-repo/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha
创建clousera-scm用户:
useradd --system --home=/opt/cm-5.3.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
在新节点上初始化CM5的数据库:出现All done, your SCM database is configured correctly! 表示成功。
[root@endb003 ~]# /opt/cm-5.3.3/share/cmf/schema/scm_prepare_database.sh mysql cmbak -h192.168.1.151 -umha_user -p --scm-host 192.168.1.% scm scm scm
Enter database password:
JAVA_HOME=/usr/java/latest
Verifying that we can write to /opt/cm-5.3.3/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cm-5.3.3/etc/cloudera-scm-server
Executing: /usr/java/latest/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.3.3/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.3.3/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
到此安装完毕,可以进行启动测试。
2. 关于启动测试部分,线下测试过程如下:
初始化数据库后,修改db.properties文件
[root@hadoop4 ~]# vim /opt/cm-5.3.3/etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=192.168.8.155
com.cloudera.cmf.db.name=cm //原来初始化的数据库为cmbakk,在这里修改为正在运行正常的155集群的cm数据库
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm
[root@hadoop4 ~]# /opt/cm-5.3.3/etc/init.d/cloudera-scm-server restart //启动后,发现新cm管理节点能正常登陆,而且出现就管理节点的相关信息,但是无法管理服务。重启服务报错。虽然报错,但是后台服务还是正常运行。
同时,就cm管理节点,出现僵死情况,无法再管理服务,要想管理需要重启就cm管理节点的服务如下:重启后,方能正常管理,切刚才的新cm管理节点此时僵死。但是能正常显示集群时时运行的状态。
[root@hadoop1 ~]# /opt/cm-5.3.3/etc/init.d/cloudera-scm-server restart
停止 cloudera-scm-server: [确定]
Starting cloudera-scm-server: [确定]
僵死情况即显示如下信息:
发生服务器错误。将以下信息发送至 Cloudera。
路径: http://192.168.8.158:7180/cmf/services/11/do
版本: Cloudera Enterprise Data Hub Edition 试用版 5.3.3 (#217 built by jenkins on 20150401-1625 git: 40ff0e551564e4210ab22da5fa9a6e4e56236c44)
javax.persistence.PersistenceException:org.hibernate.exception.ConstraintViolationException: could not perform addBatch
at
AbstractEntityManagerImpl.java line 1387
in org.hibernate.ejb.AbstractEntityManagerImpl convert()
解决办法,重启cloudera-scm-server 服务即可。
/
opt/cm-5.3.3/etc/init.d/cloudera-scm-server restart
测试 2. cm管理节点以postgres数据库为主的。这里测试CM版本为5.0.2
1. 首先搭建一台同版本的cm管理节点。
步骤如下:创建一个本地yum源 (为了提高安装速度,线下构建本地yum源。)
vim cloud-cm5.02.repo
[root@master ~]# cat /etc/yum.repos.d/cloud-cm5.02.repo
[cloud-manager]
name=Cloud Manager
baseurl=http://192.168.8.209:8090/cm/5.0.2/
gpgcheck=0
[root@master ~]# ./cloudera-manager-installer.bin --skip_repo_package=1 //安装bin文件。
完整完毕。
2. 备份原集群pg数据库数据:(6个数据库)
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting scm >scm.sql
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting amon >amon.sql
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting rman >rman.sql
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting nav>nav.sql
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting hive>hive.sql
pg_dump -p7432 -U cloudera-scm --column-inserts --disable-dollar-quoting hive1>hive1.sql
3. 导入到新的cm节点的pg数据库中
[root@master scmdb191]# dropdb -p7432 -U cloudera-scm scm
[root@master scmdb191]# dropdb -p7432 -U cloudera-scm amon
[root@master scmdb191]# dropdb -p7432 -U cloudera-scm nav
[root@master scmdb191]# dropdb -p7432 -U cloudera-scm rman
创建数据库:
[root@master scmdb191]# createdb -p 7432 -U cloudera-scm scm
[root@master scmdb191]# createdb -p 7432 -U cloudera-scm amon
[root@master scmdb191]# createdb -p 7432 -U cloudera-scm nav
[root@master scmdb191]# createdb -p 7432 -U cloudera-scm rman
[root@cnsphinx003 ~]# createdb -p 7432 -U cloudera-scm hive
[root@cnsphinx003 ~]# createdb -p 7432 -U cloudera-scm hive1
修改所属的用户:
alter database amon owner to amon;
alter database scm owner to scm;
alter database nav owner to nav;
alter database rman owner to rman;
alter database hive owner to hive;
alter database hive1 owner to hive1;
导入数据
psql -hlocalhost -p 7432 -U cloudera-scm -d amon<amon.sql
psql -hlocalhost -p 7432 -U cloudera-scm -d nav<nav.sql
psql -hlocalhost -p 7432 -U cloudera-scm -d rman<rman.sql
psql -hlocalhost -p 7432 -U cloudera-scm -d scm<scm.sql
psql -hlocalhost -p 7432 -U cloudera-scm -d hive<hive.sql
psql -hlocalhost -p 7432 -U cloudera-scm -d hive1<hive1.sql
导入完毕后,修改各个主机的/etc/hosts 添加对应主机的应解析。
/etc/init.d/cloudera-scm-server restart //启动新cm节点的主机服务
vim /etc/cloudera-scm-agent/config.ini //修改各个主机的agent节点,指向新cm主机IP
/etc/init.d/cloudera-scm-agent restart //重启agent节点。
标签:scm,cloudera,cm,--,CDH,root,节点 From: https://blog.51cto.com/u_16152230/6431721