我有一个hadoop应用程序。我编写了一个java程序,它需要org.json.jar包和hadoop-core.jar。我用下面的linux命令编译这个源文件。
mkdir q3_classes
javac -classpath ${HADOOP_HOME}/hadoop-core.jar:${HADOOP_HOME}/org.json-20120521.jar -d q3_classes ETLQ3.java
jar -cvf q3.jar -C q3_classes/ .
它编译成功。但是当我用下面的命令运行这个程序时(相同的命令成功应用于wordcount示例。)
hadoop jar q3.jar MainClassName /input /output
它抛出classnotfound异常。找不到org.json.object类。
所以我想知道我的compile命令有什么问题吗?如何用这两个jar包编译java源文件?
2条答案
按热度按时间bxjv4tth1#
你这个jar
org.json-20120521.jar
可能需要发送到集群的所有节点。尝试使用--libjars选项hadoop jar q3.jar主类名/input/output--libjars org.json-20120521.jar
确保您遵循编辑部分中的内容,了解如何实际编写mapreduce应用程序。
hfyxw5xn2#
我猜你的类路径上没有jar。将它们添加到类路径中。