1

私は通常、共通/共有ライブラリと実際のジョブ コードを異なる jar ファイルに格納しています。1 つのジョブ jar ファイルのみを再コンパイルして、hadoop コマンドを実行することはできますhadoop jar asdか? そうでない場合、jar パッケージを簡素化するための回避策はありますか?

4

2 に答える 2

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>
于 2012-06-06T12:54:24.100 に答える
0

これに対する Hadoop サポートについてはよくわかりませんが、後で質問しますが、回避策は次のとおりです。maven を使用してジョブ プロジェクトをビルドする場合は、maven シェード プラグインまたは maven アセンブリ プラグインを使用して、すべての依存関係を jar ファイルに埋め込みます。 1 つのファイルのみを展開するようにします。

于 2012-06-06T08:26:35.490 に答える