如何设置mapper的系统环境?

时间:2012-12-03 09:20:19

标签: hadoop environment-variables

首先我尝试How to set system environment variable from 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具有关键和价值。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

看来你的hadoop太老了。这是hadoop 0.20的错误。

Plz升级到0.21或更高稳定1.0.x。

有关详细信息,请参阅related jirahadoop 0.21.0 release note