Можно ли использовать несколько банок, чтобы указать работу в hadoop?
У меня обычно есть общие / общие библиотеки и фактический код задания в разных файлах jar. Можно ли перекомпилировать только один файл JAR задания для выполнения команды hadoop hadoop jar asd
? Если нет, то есть ли обходной путь для упрощения упаковки банок?
2 ответа
Я использую Ant, чтобы сделать работу банкой. Чтобы включить все общие / общие библиотеки в файл 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>
Я не уверен насчет поддержки hadoop для этого, я спрошу позже, но вот обходной путь: если вы используете maven для создания ваших рабочих проектов, используйте плагин maven shade или плагин maven сборка, чтобы встроить все ваши зависимости в jar-файл, так что вы развернете только один файл.