由于“CM正在使用外部数据库”,无法启动cloudera-scm-server-db

时间:2018-03-26 10:16:08

标签: postgresql cloudera-cdh

我已经为CDH5将jdk从1.8_131更新为1.8_151。所以我需要重新启动集群才能使其生效。在开始时我使用cloudrea管理器网页重新启动,但是当zookeeper启动时它失败了,这是第一步。然后我做了一个糟糕的选择,这是终端中关闭cloudrea管理器,包括kill -9 postgresql进程。之后,我无法打开cloudrea管理器网页。

我使用以下说明启动群集。

service cloudera-scm-server-db start
service cloudera-scm-server start
service cloudera-scm-agent start

所有这些都失败了,因为/var/log/cloudera-scm-server/var/log/cloudera-scm-agent消失了。

因此,我手动创建这两个文件,还包括dg.logcloudera-scm-agent.log

目前,serveragent可以启动。但是server-db仍然不能。接下来是一些细节。

  

启动cloudera-scm-server-db(通过systemctl):Job for   cloudera-scm-server-db.service失败,因为控制进程   退出并显示错误代码。请参阅“systemctl状态   cloudera-scm-server-db.service“和”journalctl -xe“了解详情

journalctl -xe

  

CM正在使用外部数据库。无法启动嵌入式数据库服务,放弃

Here is the JSFiddle demo

我做了什么:

那么,我现在该怎么办?谢谢,非常感谢你!

1 个答案:

答案 0 :(得分:0)

上述问题已被解决。

如果您打开此/etc/cloudera-scm-server/db.properties文件,如下所示。

# cat /etc/cloudera-scm-server/db.properties

Auto-generated by scm_prepare_database.sh
#
Sat Oct 1 12:19:15 PDT 201
#
com.cloudera.cmf.db.type=postgresql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=TXqEESuhj5
com.cloudera.cmf.db.setupType=EXTERNAL
  

EXTERNAL是关键。

在我的CDH服务中,我使用嵌入式postgresql作为我的服务器数据库。但不建议使用cloudera官方版。我是Cloudera的新人,所以我犯了一个错误。 我错误地使用了仅为Cloudera Manager Server外部数据库准备的命令。

/usr/share/cmf/schema/scm_prepare_database.sh postgresql scm scm scm_password

以上命令可以配置db.properties

只要您执行上述命令,com.cloudera.cmf.db.setupType将设置为EXTERNAL(有关详细信息,您可以在Cloudera docs中找到)

最直接有效的方法是reset password of scm

然后

  • 更新密码
  • 将类型设置为EMBEDDED
  • 使端口7432侦听(您可以使用netstat -nltp进行检查)
db.properties中的

#vim cat /etc/cloudera-scm-server/db.properties
Auto-generated by scm_prepare_database.sh
Sat Oct 1 12:19:15 PDT 201
com.cloudera.cmf.db.type=postgresql
com.cloudera.cmf.db.host=localhost:7432
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=new_password
com.cloudera.cmf.db.setupType=EMBEDDED

现在关闭所有cloudera-scm服务,然后按server-dbserveragent重启。

如果错误地清除了/ var / log。

您可以手动创建/var/log/cloudera-scm-server/var/log/cloudera-scm-agent等文件。

值得注意的是,您应该由用户cloudera-scm创建这些文件,否则无法写入日志,您将无法找到日志文件中发生的错误。