1. 像map_input_file这种环境变量是在hadoop-streaming.jar程序中设置的,所以无需-cmdenv map_input_file参数就可以在php中直接引用,如$var=getenv('mapred_input_dir');
2. 所有jobconf参数都可以通过环境变量的方式获取,只需将" . "变为" _ "即可。例如,想在php中获取mapred.linerecordreader.maxlength的值,只需getenv('mapred_linerecordreader_maxlength')
因为在hadoop-streaming.jar中有这样一段代码,遍历jobconf的key,value并添加到环境变量:
1 Iterator it = conf.iterator(); 2 3 while (it.hasNext()) { 4 5 Map.Entry en = (Map.Entry) it.next(); 6 7 String name = (String) en.getKey(); 8 9 String value = conf.get(name); 10 11 name = safeEnvVarName(name); //替换 “ . ” 为 “ _ “ 12 13 envPut(env, name, value); 14 15 }

浙公网安备 33010602011771号