はい、外部 jar を使用して MR ジョブを実行できます。
次の例のように、ジョブの送信時にと の両方HADOOP_CLASSPATH
に依存関係を必ず追加してください。-libjars
lib
以下を使用して、現在の およびディレクトリからすべての jar 依存関係を追加できます。
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:`echo *.jar`:`echo lib/*.jar | sed 's/ /:/g'`
を使用してジョブを開始するときhadoop jar
は、依存関係の jar ファイルも渡す必要があることに注意して-libjars
ください。私は使用するのが好きです:
hadoop jar <jar> <class> -libjars `echo ./lib/*.jar | sed 's/ /,/g'` [args...]
注:コマンドには別のsed
区切り文字が必要です。は分離されており、分離するHADOOP_CLASSPATH
必要があります。:
-libjars
,
編集:クラスパスを最初に解釈して、jar (事前にパッケージ化されたjarではなく) が使用されるようにする必要がある場合は、次を設定できます。
export HADOOP_USER_CLASSPATH_FIRST=true