まず、マッパーHadoopからシステム環境変数を設定する方法を試しましたか? しかしmapred.map.child.env
、私にはうまくいきません。
Hadoop 0.20.1 を使用しています。ジョブを開始したクラスからすべてのシステム環境をマッパーに渡したいです。これが私がすることです:
StringBuilder envStr = new StringBuilder();
for (Entry<String, String> entry : System.getenv().entrySet()) {
envStr.append(entry.getKey() + "=" + entry.getValue() + ",");
}
if (envStr.length() > 0) {
envStr.deleteCharAt(envStr.length() - 1);
}
// System.out.println("Setting mapper child env to :" + envStr);
getConf().set("mapred.map.child.env", envStr.toString());
しかし、うまくいきません。システム値を1つだけ設定しようとしましたが、どちらも機能しません。Mapper では、System.getenv に値が含まれていません。しかし、job.xml にはキーと値があります。これを行う方法はありますか?