在将hadoop任务提交给hadoop节点时如何添加maven类路径

时间:2013-07-22 23:47:48

标签: maven hadoop classpath

我有一个由maven管理的j2ee项目,我在本地机器上有一个hadoop节点, 我用代码提交我的hadoop作业                Configuration conf = new Configuration(); conf.set("baseFileLocation", baseFileLocation); conf.set("fs.default.name", "hdfs://localhost:9000");
conf.set("hadoop.job.user","pin"); conf.set("mapred.job.tracker","localhost:9001"); ToolRunner.run(conf,new LDAJob(), ldaArgs);

但是在提交作业后我得到了一些ClassNotFoundexception。然后我将依赖项jar添加到$ HADOOP_PREFIX / libexec / lib /,最终完成了这项工作。 依赖项jar都在本地maven资源库中,而maven资源库已经在classpath中了,如果我想让hadoop知道依赖项jars的位置,除了将依赖项jar添加到$ HADOOP_PREFIX / libexec / lib /

之外我该怎么办?

1 个答案:

答案 0 :(得分:1)

也许你可以在$ HADOOP_PREFIX / libexec / lib /中建立一个指向你的maven存储库路径的软链接。

如果您使用eclipse,则可以将maven存储库路径添加到项目构建路径:

window->preferences->java->Build Path->ClassPath Variable

创建M2_REPO =您的存储库路径