birikin  

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 }

 

 

 

 

posted on 2016-03-11 11:46  joco  阅读(954)  评论(0)    收藏  举报