我正在尝试使用apache OOzie的mysql DB。 我的$ OOZIE_HOME是 -bash:/opt/oozie_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/
但我仍然收到ClassnotFoundException。
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目录看起来像 -
答案 0 :(得分:1)
您必须将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命令授予足够的权限。
答案 1 :(得分:0)
我遇到同样的问题最后我通过编辑oozie-env.sh来解决它并在最后导出JAVA_HOME附加JAVA_HOME = / usr / local / jdk1.7 java_home是你自己的javapath
答案 2 :(得分:0)
当我将本地Derby实例转换为MySql时遇到了这个问题。我和其他问题的区别在于我没有安装RPM。我的Oozie实例是在tar.gz文件中预编译的。我不得不将mysql-connector-java-bin.jar复制到oozie-server / lib目录。除了将其复制到lib,libext和libtools目录之外。我不确定是否需要所有这些,但我知道Oozie需要oozie-server / lib才能启动。希望这有助于某人!