CDH5之Unexpected error.Unable to verify database connection

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:  在部署好CDH5(HDFS+MapReduce+Zookeeper)后,某一天想要通过web界面来添加Hive或者Oozie服务。 添加Hive组件服务:1.报错:Unexpected error.
 在部署好CDH5(HDFS+MapReduce+Zookeeper)后,某一天想要通过web界面来添加Hive或者Oozie服务。
 添加Hive组件服务:
1.报错:Unexpected error.Unable to verify database connection

2.解决办法(曲线救国的办法):
 
a.先选hive的服务节点,从namenode节点改为cm节点,这样就会在cm节点上创建角色
 b.等部署完毕
 c.进hive tab页,迁移角色或者删除角色,重新添加

 添加Oozie组件服务:
1.又报错:Unexpected error.Unable to verify database connection

2.解决办法(根源方法)



[root@hadoopdn-04 ~]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
2016-02-09 13:20:44,062 INFO 67058165@scm-web-132:com.cloudera.server.cmf.cluster.RulesCluster: Done with service and role creation
2016-02-09 13:21:25,474 INFO 1079246313@scm-web-136:com.cloudera.cmf.service.ServiceHandlerRegistry: Executing host command OozieTestDatabaseConnection BasicCmdArgs{args=[hadoopnn-01, mysql, hadoopdn-04, oozie, oozie, oozie_password]}. Host: DbHost{id=1, hostId=4f4999cd-42fd-4f9f-949e-c9581ed98d7f, hostName=hadoopnn-01}
2016-02-09 13:21:25,667 WARN 264839353@agentServer-98:com.cloudera.server.cmf.AgentProtocolImpl: Received Process Heartbeat for unknown (or duplicate) process. Ignoring. This is expected to happen once after old process eviction or process deletion (as happens in restarts).id=775 name=null host=4f4999cd-42fd-4f9f-949e-c9581ed98d7f/hadoopnn-01
2016-02-09 13:21:27,380 INFO CommandPusher:com.cloudera.cmf.service.AbstractOneOffHostCommand: Unsuccessful 'OozieTestDatabaseConnection'
2016-02-09 13:21:27,381 INFO CommandPusher:com.cloudera.cmf.service.AbstractDbConnectionTestCommand: Command exited with code: 1
2016-02-09 13:21:27,381 INFO CommandPusher:com.cloudera.cmf.service.AbstractDbConnectionTestCommand: + local MISCJAVA_HOME_CANDIDATES
+ case ${BIGTOP_JAVA_MAJOR} in
+ JAVA_HOME_CANDIDATES=(${JAVA7_HOME_CANDIDATES[@]} ${JAVA8_HOME_CANDIDATES[@]} ${JAVA6_HOME_CANDIDATES[@]} ${MISCJAVA_HOME_CANDIDATES[@]} ${OPENJAVA7_HOME_CANDIDATES[@]} ${OPENJAVA8_HOME_CANDIDATES[@]} ${OPENJAVA6_HOME_CANDIDATES[@]})
+ '[' -z '' ']'
+ for candidate_regex in '${JAVA_HOME_CANDIDATES[@]}'
++ ls -rvd /usr/java/jdk1.7.0_40 /usr/java/jdk1.7.0_67-cloudera
+ for candidate in '`ls -rvd ${candidate_regex}* 2>/dev/null`'
+ '[' -e /usr/java/jdk1.7.0_67-cloudera/bin/java ']'
+ export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
+ JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
+ break 2
+ verify_java_home
+ '[' -z /usr/java/jdk1.7.0_67-cloudera ']'
+ echo JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
+ source_parcel_environment
+ '[' '!' -z '' ']'
+ JAVA=/usr/java/jdk1.7.0_67-cloudera/bin/java
+ [[ -z /usr/share/cmf ]]
+ MGMT_CLASSPATH='/usr/share/cmf/lib/*'
+ JDBC_JARS=/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-jdbc.jar:/usr/share/java/oracle-connector-java.jar
+ MGMT_CLASSPATH='/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-jdbc.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/lib/*'
++ pwd
+ MGMT_CLASSPATH='/var/run/cloudera-scm-agent/process/795-OOZIE.OOZIE_SERVER-test-db-connection:/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-jdbc.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/lib/*'
+ MGMT_JAVA_OPTS='-Djava.net.preferIPv4Stack=true '
+ exec /usr/java/jdk1.7.0_67-cloudera/bin/java -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:///dev/urandom -cp '/var/run/cloudera-scm-agent/process/795-OOZIE.OOZIE_SERVER-test-db-connection:/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-jdbc.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/lib/*' com.cloudera.enterprise.dbutil.DbCommandExecutor db.properties
Error: Could not find or load main class com.cloudera.enterprise.dbutil.DbCommandExecutor
###################################################################################################################################
当前情况:在hadoopnn-01(namenode)部署Oozie服务,而数据库在hadoopdn-04(cm)上(使用mysql数据库).

分析以下这句报错及图01(报错信息太过模糊,无法准确定位错误,所以还是要善于使用 tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log):
+ exec /usr/java/jdk1.7.0_67-cloudera/bin/java -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:///dev/urandom -cp '/var/run/cloudera-scm-agent/process/795-OOZIE.OOZIE_SERVER-test-db-connection:/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-jdbc.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/lib/*' com.cloudera.enterprise.dbutil.DbCommandExecutor db.properties

经过分析验证:
1. /usr/share/java/mysql-connector-java.jar 路径存在(网上好多报该错误时,给的是这个mysql-connector-java.jar没有在相应路径配置,纯属瞎扯淡。假如没有这个jar,报错就不是这个错误了,会非常明显的)
2. /usr/share/cmf/lib/* ,该路径不存在,因为这个 cmf/lib/* 是部署在cm机器上的,只要对应的从cm机器scp到hadoopnn-01机器的相同路径即可

点击(此处)折叠或打开

  1. [root@hadoopnn-01 ~]# cd /usr/share/
  2. [root@hadoopnn-01 share]# mkdir -p cmf/lib
  3. [root@hadoopdn-04 ~]# scp /usr/share/cmf/lib/* root@hadoopnn-01:/usr/share/cmf/lib
然后,在去验证与mysql是否连接上,如图02( Successful)。


备注: 之前我单独添加hive服务时,也是这个错误,只不过当时采取了一种曲线救国的方式。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL Oracle 关系型数据库
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection wit...
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection wit...
262 0
|
关系型数据库 数据库 MySQL
关于网站出现 Error establishing a database connection 的解决办法
最近网站经常出现这个Error establishing a database connection ,真的是醉了,网上的解决办法就是重启数据库,或者开启configuration.php中的 true 【 define('WP_DEBUG', false);】,然后看到全部的提示,就是这个烦人的Error establishing a database connection,真的是醉了,下面讲讲我的解决办法。
27273 0
|
Java 数据库连接 数据库
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is jav
数据库连接超时,是数据库连接时的相关配置写错,例如:数据库密码,驱动等问题
3353 0
|
Oracle 关系型数据库 数据库
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection with the following error; ORA-12505,TNS:listener does
一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结 首先应该保证数据库的服务启动 在myeclipse的数据库视图中点 右键->new 弹出database driver的窗口, Driver template选择oracle(thin driver), Driver name 输入...
1135 0
|
人工智能 Oracle 关系型数据库
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection with the following error; ORA-12505,TNS:listener does
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结 首先应该保证数据库的服务启动 在myeclipse的数据库视图中点 右键->ne...
1776 0
|
Java 数据库连接 数据库
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is jav
数据库连接超时,是数据库连接时的相关配置写错,例如:数据库密码,驱动等问题
2135 0
|
SQL Oracle 关系型数据库
Duplicating a Database Without Recovery Catalog or Target Connection
Duplicating a Database Without Recovery Catalog or Target Connection duplicate体系结构 搞点英语出来吧,英语不好的哥们就好好翻译翻译吧,这段英语是必须看懂的。
894 0
|
7月前
|
SQL Oracle 关系型数据库
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
97 2
|
7月前
|
Oracle 关系型数据库
19c 开启Oracle Database Vault
19c 开启Oracle Database Vault
170 1