我试图在我的Amazon Elastic MapReduce作业上启用错误的输入跳过.我正在按照这里描述的精彩食谱:
http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code
上面的链接说我需要以某种方式在EMR作业上设置以下配置参数:
mapred.skip.mode.enabled=true
mapred.skip.map.max.skip.records=1
mapred.skip.attempts.to.start.skipping=2
mapred.map.tasks=1000
mapred.map.max.attempts=10
Run Code Online (Sandbox Code Playgroud)
如何使用Boto在JobFlow上设置这些(和其他)mapred.XXX参数?
我有一个EMR流媒体作业(Python)通常工作正常(例如10台机器处理200个输入).但是,当我针对大型数据集(12台机器处理总共6000个输入,每个输入大约20秒)运行它时,经过2.5小时的运算后,我得到以下错误:
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 143
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:372)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:586)
at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:135)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:441)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:377)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Run Code Online (Sandbox Code Playgroud)
如果我正确读取此内容,则子进程因代码143而失败,因为有人向流式作业发送了SIGTERM信号.
我的理解是否正确?如果是这样:EMR基础设施何时发送SIGTERM?