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

  1. Register each class's serializer only once; remove the duplicate registration.
  2. 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.