Если я запускаю задачу MapReduce в моем кластере CDH3, которая инициализирует более одного Mapper, первый Mapper никогда не завершится.Я не могу найти ошибку ни в одном из моих файлов журнала.Единственные релевантные журналы, которые я получаю, это:
Task xxx failed to report status for 1800 seconds. Killing!
после того, как несколько задач будут убиты, работа завершается сбоем и выдает это исключение:
2012-01-30 11:30:00,998 ERROR server jobsubd PlanRunner saw exception.
Traceback (most recent call last):
File "/usr/share/hue/apps/jobsub/src/jobsub/server.py", line 160, in run
self.run_bin_hadoop_step(step.bin_hadoop_step)
File "/usr/share/hue/apps/jobsub/src/jobsub/server.py", line 292, in run_bin_hadoop_step
raise Exception("bin/hadoop returned non-zero %d" % retcode)
Exception: bin/hadoop returned non-zero 1
2012-01-30 11:30:01,027 INFO server Marked jobsubd job 130 as done.
Может кто-нибудь дать мне несколько советов о том, где искать возможное решение.
Спасибо!
A Mapper:
@Override
public void map(LongWritable offset, Text line, Context context)
throws IOException {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xml = builder.parse(new ByteArrayInputStream(line.getBytes()));
Node root = xml.getFirstChild();
NodeList nodes = root.getChildNodes();
for (int indexElement = 0; indexElement < nodes.getLength(); indexElement++) {
Element element = (Element) nodes.item(indexElement);
Put put = new Put(Bytes.toBytes(indexElement));
if (element.hasAttributes()) {
NamedNodeMap attributes = element.getAttributes();
for (int indexAttribute = 0; indexAttribute < attributes
.getLength(); indexAttribute++) {
Attr attribuut = (Attr) attributes.item(indexAttribute);
put.add(Bytes.toBytes("attributes"),
Bytes.toBytes(attribuut.getNodeName()),
Bytes.toBytes(attribuut.getNodeValue()));
}
}
if (element.getNodeValue() != null) {
put.add(Bytes.toBytes("value"), Bytes.toBytes(element.getNodeName()), Bytes.toBytes(element.getNodeValue()));
}
context.write(new ImmutableBytesWritable() , put);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Входные данные представляют собой файл XML,Другие Mappers, например импортер JSON, имеют ту же проблему.