首先我尝试了如何从 Mapper 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());
但它不起作用。我也试过只设置一个系统值,但它也不起作用。在 Mapper 中, System.getenv 不包含该值。但是 job.xml 有关键和价值。有没有办法做到这一点?