0
点赞
收藏
分享

微信扫一扫

CDH cm节点高可用方案


       近期因工作需要,对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节点。




            

举报

相关推荐

0 条评论