为什么HDFS使用协议缓冲区而不是Java序列化API?
如果我想通过 Java 序列化将对象从一个数据节点发送到另一个数据节点,该怎么办?
我尝试了几件事,但出现以下错误:java.io.WriteAbortedException: write aborted;java.io.NotSerializableException: java.lang.Thread
因为具有外部模式定义的格式(如协议缓冲区(比内置 Java 序列化更节省空间,后者会生成非常详细的文件。
HDFS可以使用不同的格式来存储数据。通常首选提供最佳空间效率而又不会过度占用 CPU 的格式。某些格式是为有助于数据处理的特定目标而设计的:
- 面向
- 行的阿夫罗 柱
- 状拼花地板
java.io.NotSerializableException: java.lang.Thread
异常表明您正在尝试序列化未实现Thread
Serializable