为什么hdfs使用协议缓冲区而不是java序列化api进行序列化?

iaqfqrcu  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(403)

为什么hdfs使用协议缓冲区而不是java序列化api?
如果我想通过java序列化将一个对象从一个数据节点发送到另一个数据节点呢?
我尝试了一些方法,但得到了以下错误:java.io.writeabortedexception:写入中止;java.io.notserializableexception:java.lang.thread

nle07wnf

nle07wnf1#

因为具有外部模式定义(如协议缓冲区)的格式比内置java序列化(生成非常详细的文件)更节省空间。
hdfs可以使用不同的格式来存储数据。提供最佳空间效率而不过度占用cpu的格式通常是首选的。有些格式是为特定目标设计的,有助于数据处理:
面向行的avro
柱状 parquet java.io.NotSerializableException: java.lang.Thread 异常显示您正在尝试序列化 Thread 这是没有实现的 Serializable

相关问题