签到成功

知道了

CNDBA社区CNDBA社区

CDH 安装组件java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法

2019-04-30 14:30 5817 0 原创 Hadoop
作者: dave

在安装CDH的时候报如下错误:https://www.cndba.cn/dave/article/3376

仅完成 0/1 个步骤。首个失败:命令 (Create Hive Metastore database tables (127)) 已失败https://www.cndba.cn/dave/article/3376

https://www.cndba.cn/dave/article/3376
https://www.cndba.cn/dave/article/3376

查看标准输出如下:

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

查看错误日志输出:

https://www.cndba.cn/dave/article/3376

++ 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目录下:https://www.cndba.cn/dave/article/3376

https://www.cndba.cn/dave/article/3376
https://www.cndba.cn/dave/article/3376

[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目录下:https://www.cndba.cn/dave/article/3376

[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。 https://www.cndba.cn/dave/article/3376

[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]#

小知识点,随笔记之。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2258
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7944804次
  • 积分:4337
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ