为什么 HDFS 使用协议缓冲区而不是 Java 序列化 API 进行序列化



为什么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

最新更新