我有一个由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 /
之外我该怎么办?答案 0 :(得分:1)
也许你可以在$ HADOOP_PREFIX / libexec / lib /中建立一个指向你的maven存储库路径的软链接。
如果您使用eclipse,则可以将maven存储库路径添加到项目构建路径:
window->preferences->java->Build Path->ClassPath Variable
创建M2_REPO
=您的存储库路径