2015-12-21
1.用php的curl模块向es中录入数据应该设置curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:")); 选项,否则curl会先向es握手确认(expect:100),es响应http code : 100,再传输数据,比较影响效率。
2.hadoop streaming模式下结合-inputformat org.apache.hadoop.mapred.lib.CombineTextInputFormat选项,并合理设置
-D mapred.max.split.size=$[10*1024*1024*1024]
-D mapred.max.num.blocks.per.split=99999999
能显著提高input总量大且由大量文件组成的mr作业的运行效率(如云查杀日志)。
java程序同理。
3.hadoop streaming模式可以通过环境变量获取hadoop的configuration信息,只需将jobconf变量名的"."变为"_"即可,例如php中要在运行时获取mapred.input.dir的值,只需$var=getenv(‘mapred_input_dir‘);即可。
这极大方便了基于streaming模式mr程序的开发。