apacheoozie在创建mysql数据库时抛出classnotfound异常

ltskdhd1  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(321)

我正在尝试将mysql db与apacheoozie结合使用。我的$oozie\u home是-bash:/opt/oozie\u install/oozie-3.3.0-cdh4.2.2:是一个目录
但我几乎在所有可能的地方复制了mysql-connector-java-5.1.29-bin.jar。就像我在里面复制的一样

/opt/oozie_install/oozie-3.3.0-cdh4.2.2
/opt/oozie_install/oozie-3.3.0-cdh4.2.2/libs
/opt/oozie_install/oozie-3.3.0-cdh4.2.2/libtools
/usr/lib/jvm/jdk/libs
/user/home/hadoop/

但我还是发现了一个例外。

java.lang.Exception: Could not connect to the database: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:473)
        at org.apache.oozie.tools.OozieDBCLI.createDB(OozieDBCLI.java:179)
        at org.apache.oozie.tools.OozieDBCLI.run(OozieDBCLI.java:118)
        at org.apache.oozie.tools.OozieDBCLI.main(OozieDBCLI.java:64)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at org.apache.oozie.tools.OozieDBCLI.createConnection(OozieDBCLI.java:462)
        at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:469)

我应该在哪里复制mysql连接器。
我已经验证了我的oozie-site.xml-

我按照以下步骤在oozie中使用mysql

我的oozie目录看起来像-

h79rfbju

h79rfbju1#

我遇到了同样的问题,最后我通过编辑oozie-env.sh并在最后一次export时附加java\u home=/usr/local/jdk1.7 java\u home就是javapath来解决它

jqjz2hbq

jqjz2hbq2#

我在将本地derby示例转换为mysql时遇到了这个问题。我的问题和其他问题的区别在于,我没有安装rpm。我的oozie示例是在tar.gz文件中预编译的。我不得不将mysql-connector-java-bin.jar复制到oozie server/lib目录。除了将其复制到lib、libext和libtools目录之外。我不确定是否需要所有这些,但我知道oozie启动需要oozie server/lib。希望这能帮上忙!

yyhrrdl8

yyhrrdl83#

你必须复制 mysql-connector-java-5.1.29-bin.jar/opt/oozie_install/oozie-3.3.0-cdh4.2.2/libext 然后重新启动oozie示例。确保mysql用户oozie对数据库oozie有足够的权限,如果没有权限,则在mysql server中使用grant命令授予足够的权限。

相关问题