公司线上大数据集群,之前用的是公有云主机,现在换成了自己idc机房机器,需要服务迁移,已下为测试:
1.备份原postgresql数据库:
pg_dump -U scm scm > scm.sql
2.选一个节点hadoopNode2,安装cloudea-manager-server服务:
yum install -y cloudera-manager-server
3.hadoopNode2上安装postgresql,要做到和hadoopNode1上的postgresql版本一致:
yum install -y postgresql-libs yum install -y postgresql yum install -y postgresql-server
可能会出现安装错误,把系统自带的postgresql-libs先删除,再安装;
创建用户scm,数据库scm,讲scm数据库权限赋给scm用户;
CREATE USER scm WITH PASSWORD 'chenliangliang'; CREATE DATABASE scm OWNER scm ; GRANT ALL PRIVILEGES ON DATABASE scm to scm;
说明:在安装好postgresql数据库,启动数据库/创建好scm用户后以scm登录数据库,会有以下问题:
1)初始化initdb;
先执行service postgresql initdb,在root身份;
2)
修改配置文件 vim /var/lib/pgsql/data/pg_hba.conf
将图中ident都修改为trust,然后service postgresql restart即可;
4.在hadoopNode2上初始化cloudera-scm-server服务:
/usr/share/cmf/schema/scm_prepare_database.sh postgresql scm scm chenliangliang
导入备份的数据库:
psql -U scm scm < scm.sql
数据导入成功后,检验一下tables中数据是否正常;
5.服务迁移:
1).在cloudera manager页面上停止Cloudera Management Service监控服务 2).主节点关闭cloudera-scm-server,所有节点关闭cloudera-scm-agent 主节点:service cloudera-scm-server stop 所有节点:service cloudera-scm-agent stop 3.修改新的主节点下 service cloudera-scm-server/db.properties的配置文件 vi /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.host=hadoopNode2 4).修改所有节点agent下的配置文件 vi /etc/cloudera-scm-agent/config.ini server_host=hadoopNode2 5).主节点启动 cloudera-scm-server service cloudera-scm-server start 所有节点启动cloudera-scm-agent service cloudera-scm-agent start 6).登陆新节点的7180,查看服务状态
这时候打开http://hadoopNode2:7180/cmf可能会报以下错误,页面打不开,看cloudera-scm-server log日志:
参考链接:https://blog.csdn.net/qq_22222499/article/details/71024858
还有一种错误是service cloudera-scm-server start服务起来一段时间后,就挂掉了:
日志报错如:
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
这些问题都解决之后,继续;
6.登录到cloudera dashboard 重启 Cloudera Management Service一切正常: