繁体   English   中英

如何将外部库添加到Hadoop映射减少任务

[英]How to add external library to Hadoop map-reduce task

我有MyClass.java来定义map-reduce任务。 MyClass.java包含mapper,reducer和main的定义。 它正常工作,但是如果我尝试使用/添加一个外部jar,则会收到消息ClassNotFoundException。

要编译,请使用以下命令:

javac -classpath hadoop_library_path:my_library_path -sourcepath code_path/ -d class_path/ path/MyClass.java

我创建了jar,然后运行任务:

hadoop jar maclass.jar MyClass input output -target target

还需要在“ jar hadoop”命令中添加外部jar吗? 我尝试使用-libjars选项,但没有结果。 任何想法?

正如我所评论的,我看到两个选项(可能还有更多):

  1. 使用Eclipse并生成一个可运行的jar(我不确定NetBeans或IntelliJ)。

  2. 使用maven及其阴影插件生成一个超级jar。 您应该添加所有用作依赖项的外部库。

我推荐后一种选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM