我有一个用C++编写的相对简单的程序,并且我一直在为MapReduce作业使用Hadoop流(我的Hadoop版本是Cloudera)。
最近,我发现很多流媒体任务一直在失败,任务跟踪器在任务跟踪程序重启它们的同时成功地完成了这些任务。我跟踪了用户日志,发现一些MapReduce任务似乎没有输入。具体而言,错误消息看起来如下所示:
HOST=null
USER=mapred
HADOOP_USER=null
last Hadoop input: |null|
last tool output: |TCGA-06-0216-0000024576-0000008192 0 27743 10716|
Date: Sun Apr 29 15:55:51 EDT 2012
java.io.IOException: Broken pipe 有时错误率很高(接近50%)。我不认为这是正常的。有人知道吗?
a)发生了什么?
b)我如何修复它?
谢谢
发布于 2012-05-01 11:50:21
您的数据中是否有很多其他语言的字符(例如中文)?
如果是这样,请检查(1) Hadoop集群的JVM中的字符编码设置:它很可能默认设置为UTF-8。(2)您的映射器/缩减程序:确保您的映射器/缩减程序发出UTF-8 (或您设置的JVM的任何字符编码)的字符。
https://stackoverflow.com/questions/10375623
复制相似问题