我研究过 Java 的Serialization 和 Deserialization 过程,并试图理解 Hadoop 和Spark 还有。
谁能告诉我 Hadoop、Spark 和 Java 的序列化过程之间的区别。
最佳答案
Hadoop有自己的序列化接口(interface)(Writable),旨在让产生的垃圾尽可能少。当 mapper 或 reducer 运行时,实现它的对象是可变的和重用的,从而进一步减少了垃圾量。此外,经过适当设计的 Writable 可以由不同版本的代码编写,解决了 Serializable 的固有问题。
Spark 没有自己的序列化,默认使用原生 java 序列化。它的性能不是很好,可以使用 spark Kryo ,有时会带来 10 倍的性能提升。但是,当使用 Kryo 时,所有自定义类都应在运行作业之前在 SparkConf 中注册。
关于Java 序列化 vs Hadoop 序列化 vs Spark 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50625595/