CDH 安装组件java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法
作者:
dave
在安装CDH的时候报如下错误:
仅完成 0/1 个步骤。首个失败:命令 (Create Hive Metastore database tables (127)) 已失败
查看标准输出如下:
Tue Apr 30 13:32:40 CST 2019
Current working directory: /opt/cm-5.16.1/run/cloudera-scm-agent/process/80-hive-metastore-create-tables
Launching one-off process: /opt/cm-5.16.1/lib64/cmf/service/hive/hive.sh create_metastore_tables
Tue Apr 30 13:32:40 CST 2019
JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
using /usr/java/jdk1.8.0_211-amd64 as JAVA_HOME
using 5 as CDH_VERSION
using /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hive as HIVE_HOME
using /opt/cm-5.16.1/run/cloudera-scm-agent/process/80-hive-metastore-create-tables as HIVE_CONF_DIR
using /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop as HADOOP_HOME
using /opt/cm-5.16.1/run/cloudera-scm-agent/process/80-hive-metastore-create-tables/yarn-conf as HADOOP_CONF_DIR
CONF_DIR=/opt/cm-5.16.1/run/cloudera-scm-agent/process/80-hive-metastore-create-tables
CMF_CONF_DIR=/opt/cm-5.16.1/etc/cloudera-scm-agent
Metastore connection URL: jdbc:mysql://hadoop-cm:3306/hive?useUnicode=true&characterEncoding=UTF-8
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: hive
查看错误日志输出:
++ false
++ exec /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop/bin/hadoop jar /opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hive/lib/hive-cli-1.1.0-cdh5.16.1.jar org.apache.hive.beeline.HiveSchemaTool -verbose -dbType mysql -initSchema
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
at org.apache.hadoop.hive.metastore.tools.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:79)
at org.apache.hive.beeline.HiveSchemaTool.getConnectionToMetastore(HiveSchemaTool.java:143)
at org.apache.hive.beeline.HiveSchemaTool.testConnectionToMetastore(HiveSchemaTool.java:450)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:556)
at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:542)
at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1139)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:226)
at org.apache.hadoop.util.RunJar.main(RunJar.java:141)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.hive.metastore.tools.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:70)
... 11 more
*** schemaTool failed ***
从错误日志看,是没有找到MySQL的驱动,但实际上在之前步骤中已经复制到/ur/share/java目录下:
[dave@www.cndba.cn java]# cd /usr/share/java
[dave@www.cndba.cn java]# ls
mysql-connector-java-5.1.47-bin.jar mysql-connector-java-5.1.47.jar
[dave@www.cndba.cn java]#
尝试直接将mysql驱动复制到hive的lib目录下:
[root@hadoop-master3 lib]# pwd
/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hive/lib
You have new mail in /var/spool/mail/root
[root@hadoop-master3 lib]# scp root@hadoop-cm:/usr/share/java/mysql-connector* .
[root@hadoop-master3 lib]# ls mysql-connector-java-5.1.47*
mysql-connector-java-5.1.47-bin.jar mysql-connector-java-5.1.47.jar
[root@hadoop-master3 lib]#
安装成功,但后面安装Oozie时又报这个错误。 后来将/usr/share/java目录下的驱动文件名中的版本号删除后,执行成功。 看来CDH 对MySQL驱动的文件名是有要求的mysql-connector-java.jar。
[dave@www.cndba.cn java]# cd /usr/share/java
[dave@www.cndba.cn java]# ls
mysql-connector-java-5.1.47-bin.jar mysql-connector-java-5.1.47.jar
[dave@www.cndba.cn java]# ll
total 1968
-rw-r--r--. 1 root root 1007505 Apr 30 13:25 mysql-connector-java-5.1.47-bin.jar
-rw-r--r--. 1 root root 1007502 Apr 30 13:25 mysql-connector-java-5.1.47.jar
[dave@www.cndba.cn java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
[dave@www.cndba.cn java]# ll
total 1968
-rw-r--r--. 1 root root 1007505 Apr 30 13:25 mysql-connector-java-5.1.47-bin.jar
-rw-r--r--. 1 root root 1007502 Apr 30 13:25 mysql-connector-java.jar
You have new mail in /var/spool/mail/root
[dave@www.cndba.cn java]#
小知识点,随笔记之。
版权声明:本文为博主原创文章,未经博主允许不得转载。