Cloudera Hadoop构建集群问题记录之一:添加Hive服务数据库测试连接报错JDBC Driver找不到

1. Cloudera将Hive服务添加到集群进行数据库连接测试报错

下图显示具体原因:在medastore server节点JDBC Driver 找不到。
Cloudera Hadoop构建集群问题记录之一:添加Hive服务数据库测试连接报错JDBC Driver找不到_第1张图片

2. 原因分析

上图左下角备注最后1条信息:强烈建议将各个数据库与相应角色实例置于同一主机上。,而本次cloudera测试集群想将数据库相关以及cloudera本身的server服务单独放置在1台服务器上,与hadoop本身的组件服务隔离在不同的服务器。

本身没有什么问题,但是Hive metastore server服务的节点上默认没有在相关目录下集成mysql的jdbc driver,从而导致在服务添加的时候metaserver server找不到驱动报错。

3. 解决思路

将mysql JDBC driver的jar包放到合适的位置即可。我这里为何方便,放置到/opt/cloudera/parcels/CDH/jars,并且每个节点都配置了,之后链接到hive/lib/下

for var in {2..7};do scp mysql-connector-java-8.0.11.jar hadoop-hzbatst-$var:/opt/cloudera/parcels/CDH/jars;done

for var in {2..7}; do ssh hadoop-hzbatst-$var '(cd /opt/cloudera/parcels/CDH/lib/hive/lib; ln -s ../../../jars/mysql-connector-java-8.0.11.jar mysql-connector-java-8.0.11.jar)' ;done

如上配置之后,问题并没有解决。

其实之前就将这个driver放在了/usr/share/java下:

~]# ll /usr/share/java/
-rw-r--r-- 1 root root 2036609 Apr 28 10:58 mysql-connector-java-8.0.11.jar

参考文档 需要重命名这个jar包,将版本号去掉

mv /usr/share/java/mysql-connector-java-8.0.11.jar /usr/share/java/mysql-connector-java.jar 

然后竟然成功了,截图如下:

Cloudera Hadoop构建集群问题记录之一:添加Hive服务数据库测试连接报错JDBC Driver找不到_第2张图片

4. 遗留的疑问

我的数据库与cloudera的 Cloudera management Service是放在一个节点上的:hadoop-hzbatst-1,mysql-connector-java-8.0.11.jar是放在/usr/share/java/下的,并没有重命名,但是在配置Activity Monitor数据库连接时并没有出现该连接不成功找不到jdbc driver的问题,为何添加Hive服务的时候需要重新命名该driver jar包,去掉版本信息

* 如果谁有知道原因的,可以传授下经验和原因 *

参考文档:
https://blog.csdn.net/levy_cui/article/details/51142843

你可能感兴趣的:(Hadoop)