apache/hadoop · error · IOException
Error! Serializer already registered, existing: {}, new: {}
Error message
Error! Serializer already registered, existing: {}, new: {} What it means
Error "Error! Serializer already registered, existing: {}, new: {}" thrown in apache/hadoop.
Source
Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/java/org/apache/hadoop/mapred/nativetask/serde/NativeSerialization.java:75
return new DefaultSerializer();
}
public void register(String klass, Class<?> serializer) throws IOException {
if (null == klass || null == serializer) {
throw new IOException("invalid arguments, klass or serializer is null");
}
if (!INativeSerializer.class.isAssignableFrom(serializer)) {
throw new IOException("Serializer is not assigable from INativeSerializer");
}
final Class<?> storedSerializer = map.get(klass);
if (null == storedSerializer) {
map.put(klass, serializer);
return;
} else {
if (!storedSerializer.getName().equals(serializer.getName())) {
throw new IOException("Error! Serializer already registered, existing: " +
storedSerializer.getName() + ", new: " +
serializer.getName());
}
}
}
public void reset() {
map.clear();
}
private static NativeSerialization instance = new NativeSerialization();
public static NativeSerialization getInstance() {
return instance;
}
}View on GitHub (pinned to 2add963021)
Solutions
- Register each class's serializer only once; remove the duplicate registration.
- If replacing a serializer intentionally, deregister or restructure registration so one class maps to one serializer.
When it happens
Trigger: Thrown by NativeSerialization.register() when a serializer is registered twice for the same Writable class with a different serializer instance. Register each key/value class only once, or reuse the already-registered serializer.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/b9169a826135f33c.
Report an issue: GitHub.