最近用hadoop streaming 写hadoop程序,由于调用了第三方库,在处理输入文件时有些情况会使得第三方库出现segment fault 而使得任务挂掉,这样整个hadoop job会一直尝试重启任务来处理这段bad records直到达到设置的attempt值,最后整个job失败 。害我预先处理了下输入文本把bad records找到并删掉,但是这样处理大规模数据每次都得先检查一遍输入数据太蛋疼了。
幸运的是,hadoop有个skip bad records 模式,通过此方法可以跳过bad records ,具体可见hadoop权威指南中文版P184页,6.5.3跳过坏记录。
这个博客讲的也不错 http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code