如何向hadoop map reduce任务添加外部库

9bfwbjaz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

我有myclass.java来定义map reduce任务。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是否也需要添加到“jar hadoop”命令中?我尝试了-libjars选项,但没有结果。你知道吗?

xzlaal3s

xzlaal3s1#

正如我所评论的,我看到了两种选择(可能还有更多):
使用eclipse并生成一个可运行的jar(我不确定netbeans或intellij)。
使用maven及其shade插件生成一个uberjar。应该添加所有用作依赖项的外部库。
我推荐后一种选择。

相关问题