问题现象:
CM-WEB页面打开失败,http://10.235.106.97:7180/
初步定为是: 怀疑/etc/cloudera-scm-server 目录被误删,导致日志中无法找到 Could not find or parse database configuration file: 'db.properties'.
[root@cloud0 /]# service cloudera-scm-server status
cloudera-scm-server dead but pid file exists
查看日志:
[root@cloud0 log]# cd cloudera-scm-server
[root@cloud0 cloudera-scm-server]# ls -rta
db.log cloudera-scm-server.log.1 cloudera-scm-server.log . .. cloudera-scm-server.out
[root@cloud0 cloudera-scm-server]# ls
cloudera-scm-server.log cloudera-scm-server.log.1 cloudera-scm-server.out db.log
[root@cloud0 cloudera-scm-server]# more cloudera-scm-server.out
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
log4j:ERROR Could not read configuration file from URL [file:/etc/cloudera-scm-server/log4j.properties].
java.io.FileNotFoundException: /etc/cloudera-scm-server/log4j.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at java.io.FileInputStream.<init>(FileInputStream.java:101)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:524)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
at com.cloudera.server.cmf.Main.<clinit>(Main.java:144)
log4j:ERROR Ignoring configuration file [file:/etc/cloudera-scm-server/log4j.properties].
log4j:WARN No appenders could be found for logger (com.cloudera.server.cmf.Main).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.cloudera.serv
er.cmf.TrialState': Cannot resolve reference to bean 'entityManagerFactoryBean' while setting constructor argument; nested exception
is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean': FactoryBean t
hrew exception on object creation; nested exception is java.lang.RuntimeException: Could not find or parse database configuration fi
le: 'db.properties'.
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:3
28)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver
.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableB
eanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBe
anFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFact
ory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactor
y.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222
)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.
java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext
.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at com.cloudera.server.cmf.Main.bootstrapSpringContext(Main.java:344)
at com.cloudera.server.cmf.Main.<init>(Main.java:220)
at com.cloudera.server.cmf.Main.main(Main.java:194)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean': Factor
yBean threw exception on object creation; nested exception is java.lang.RuntimeException: Could not find or parse database configura
tion file: 'db.properties'.
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySuppor
t.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.
java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1440)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:247)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:3
22)
... 17 more
Caused by: java.lang.RuntimeException: Could not find or parse database configuration file: 'db.properties'.
at com.cloudera.enterprise.CommonMain.setupHibernate(CommonMain.java:159)
at com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean.getObject(EntityManagerFactoryBean.java:107)
at com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean.getObject(EntityManagerFactoryBean.java:60)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySuppor
t.java:142)
... 22 more
Caused by: java.io.FileNotFoundException: /etc/cloudera-scm-server/db.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at com.cloudera.enterprise.CommonMain.setupHibernate(CommonMain.java:102)
... 25 more
解决过程:
1、从别的省的服务器上要了 db.properties文件,并按正确的权限和用户创建;
2、启动cloudera-scm-server成功了,但没有几秒就吊死
部署过程:
[root@cloud0 etc]# ls -lrta |grep cloudera
drwxr-xr-x 2 root root 4096 Jun 11 17:41 cloudera-scm-agent
drwxr-xr-x 2 cloudera-scm cloudera-scm 4096 Jun 12 12:54 cloudera-scm-server
[root@cloud0 etc]# cd cloudera-scm-server
[root@cloud0 cloudera-scm-server]# ls -lrta
total 44
drwxr-xr-x. 144 root root 12288 Jun 12 10:51 ..
-rw-r--r-- 1 root root 1424 Jun 12 11:36 log4j.properties
-rw-r--r-- 1 root root 8041 Jun 12 12:03 db.propertiesbak
-rw-r--r-- 1 root root 8210 Jun 12 12:54 db.propertiesbak2
-rw-r--r-- 1 cloudera-scm cloudera-scm 163 Jun 12 12:54 db.properties
drwxr-xr-x 2 cloudera-scm cloudera-scm 4096 Jun 12 12:54 .
[root@cloud0 cloudera-scm-server]# more db.properties 从河南要的结果
com.cloudera.cmf.db.type=postgresql
oudera.cmf.db.host=localhost:7432
oudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=2QWXonIxdf
[root@cloud0 cloudera-scm-server]#
重启cm后没有几秒就挂了,如下图
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server restart
cloudera-scm-server is already stopped
Starting cloudera-scm-server: [ OK ]
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server (pid 10255) is running...
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server dead but pid file exists
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server dead but pid file exists
[root@cloud0 cloudera-scm-server]# service cloudera-scm-server status
cloudera-scm-server dead but pid file exists
[root@cloud0 cloudera-scm-server]#
具体日志:
[root@cloud0 cloudera-scm-server]# more cloudera-scm-server.out
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.cloudera.serv
er.cmf.TrialState': Cannot resolve reference to bean 'entityManagerFactoryBean' while setting constructor argument; nested exception
is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean': FactoryBean t
hrew exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:3
28)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver
.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableB
eanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBe
anFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFact
ory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactor
y.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222
)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.
java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext
.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at com.cloudera.server.cmf.Main.bootstrapSpringContext(Main.java:344)
at com.cloudera.server.cmf.Main.<init>(Main.java:220)
at com.cloudera.server.cmf.Main.main(Main.java:194)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean': Factor
yBean threw exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connectio
n
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySuppor
t.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.
java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1440)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:247)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:3
22)
... 17 more
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:221)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:157)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:282)
at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2000)
at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:1986)
at com.cloudera.enterprise.dbutil.DbUtil.getSchemaVersion(DbUtil.java:190)
at com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean.checkVersionDoFail(EntityManagerFactoryBean.java:258)
at com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean.getObject(EntityManagerFactoryBean.java:120)
at com.cloudera.server.cmf.bootstrap.EntityManagerFactoryBean.getObject(EntityManagerFactoryBean.java:60)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySuppor
t.java:142)
... 22 more
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:84)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:29
2)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)
... 31 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary
factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
... 35 more
log4j:ERROR Could not read configuration file from URL [file:/etc/cloudera-scm-server/log4j.properties].
java.io.FileNotFoundException: /etc/cloudera-scm-server/log4j.properties (No such file or directory)
Caused by: java.lang.RuntimeException: Could not find or parse database configuration file: 'db.properties'.
oudera.cmf.db.host=localhost:7432
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!