복붙노트

[HADOOP] Hadoop MapReduce for Java 유형에 Writable 래퍼 클래스가있는 이유는 무엇입니까?

HADOOP

Hadoop MapReduce for Java 유형에 Writable 래퍼 클래스가있는 이유는 무엇입니까?

나에게있어 org.apache.hadoop.io.serializer.Serialization은 래퍼 클래스가 형식을 직렬화하는 것과 동일한 형식으로 직접 Java 유형을 직렬화하도록 작성 될 수 있다고 생각합니다. 그런 식으로 Mappers와 Reducer는 래퍼 클래스를 다룰 필요가 없습니다.

해결법

  1. ==============================

    1.java 직렬화 가능 인터페이스 또는 절약, 프로토콜 버퍼 등과 같은 다른 메커니즘을 사용하기 위해 직렬화를 변경하는 것을 막을 수있는 방법은 없습니다.

    java 직렬화 가능 인터페이스 또는 절약, 프로토콜 버퍼 등과 같은 다른 메커니즘을 사용하기 위해 직렬화를 변경하는 것을 막을 수있는 방법은 없습니다.

    사실, Hadoop은 Java Serializable 객체를위한 (실험적인) 직렬화 구현을 제공합니다. 직렬화 팩토리를 사용하도록 구성하기 만하면됩니다. 기본 직렬화 메커니즘은 WritableSerialization이지만 다음 구성 등록 정보를 설정하여 변경할 수 있습니다.

    io.serializations=org.apache.hadoop.io.serializer.JavaSerialization
    

    그러나 Writable (입력 / 출력 형식, 분할 자, 비교 자) 등이 Writable 인스턴스가 아닌 Serializable 인스턴스를 전달할 수있는 버전으로 대체되어야합니다.

    호기심 많은 독자를위한 링크

  2. from https://stackoverflow.com/questions/17203661/what-is-the-reason-for-having-writable-wrapper-classes-in-hadoop-mapreduce-for-j by cc-by-sa and MIT license