是否可以使用几个罐子来指定hadoop中的工作?

时间:2012-06-06 03:37:43

标签: hadoop hadoop-plugins

我通常在不同的jar文件中有公共/共享库和实际的作业代码。是否可以重新编译一个作业jar文件来执行hadoop命令hadoop jar asd? 如果不是,有简化罐子包装的解决方法吗?

2 个答案:

答案 0 :(得分:1)

我正在使用Ant来制作作业jar。要在buildConfig.xml文件中包含所有公共/共享库,您必须添加以下行:

<zipgroupfileset dir="pathToAllCommonAndSharedLibraries" includes="**/*.jar" />

以下是构建配置文件的最简单示例。

<?xml version="1.0" encoding="UTF-8"?>
<project name="Example.makejar" default="jar" basedir=".">
    <target name="jar">
        <jar destfile="Example.jar" basedir="bin">
            <manifest></manifest>
            <zipgroupfileset dir="pathToAllCommonAndSharedLibraries" includes="**/*.jar" />
        </jar>
    </target>
</project>

答案 1 :(得分:0)

我不确定hadoop支持这个,我稍后会问,但是这里是解决方法:如果你使用maven来构建你的工作项目,使用maven shade插件或maven程序集插件将所有依赖项嵌入到jar文件,以便您只部署一个文件。