我有一个连接到redshift服务器并获取一些表条目的代码。当我在本地运行时,它运行良好。但当我将它构建为一个jar并在hadoop上运行时,我得到了一个例外:
java.lang.ClassNotFoundException: org.postgresql.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 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
我在pom.xml中添加了以下内容:
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
我还在hadoop-env.sh中的hadoop\u classpath变量中添加了jar文件位置。有什么我不知道的吗?
谢谢。
1条答案
按热度按时间myzjeezk1#
我改变了jar的位置,它现在可以工作了。我仍然不明白为什么它没有从前面的路径中取出jar。