为什么hdfs使用协议缓冲区而不是java序列化api?如果我想通过java序列化将一个对象从一个数据节点发送到另一个数据节点呢?我尝试了一些方法,但得到了以下错误:java.io.writeabortedexception:写入中止;java.io.notserializableexception:java.lang.thread
nle07wnf1#
因为具有外部模式定义(如协议缓冲区)的格式比内置java序列化(生成非常详细的文件)更节省空间。hdfs可以使用不同的格式来存储数据。提供最佳空间效率而不过度占用cpu的格式通常是首选的。有些格式是为特定目标设计的,有助于数据处理:面向行的avro柱状 parquet java.io.NotSerializableException: java.lang.Thread 异常显示您正在尝试序列化 Thread 这是没有实现的 Serializable
java.io.NotSerializableException: java.lang.Thread
Thread
Serializable
1条答案
按热度按时间nle07wnf1#
因为具有外部模式定义(如协议缓冲区)的格式比内置java序列化(生成非常详细的文件)更节省空间。
hdfs可以使用不同的格式来存储数据。提供最佳空间效率而不过度占用cpu的格式通常是首选的。有些格式是为特定目标设计的,有助于数据处理:
面向行的avro
柱状 parquet
java.io.NotSerializableException: java.lang.Thread
异常显示您正在尝试序列化Thread
这是没有实现的Serializable