如何序列化hadoop中的对象(在HDFS中)

如何序列化hadoop中的对象(在HDFS中),第1张

如何序列化hadoop中的对象(在HDFS中)

请尝试使用来自Apache Commons
Lang的SerializationUtils。

以下是方法

static Object   clone(Serializable object)  //Deep clone an Object using serialization.static Object   deserialize(byte[] objectData) //Deserializes a single Object from an array of bytes.static Object   deserialize(InputStream inputStream)  //Deserializes an Object from the specified stream.static byte[]   serialize(Serializable obj) //Serializes an Object to a byte array for storage/serialization.static void serialize(Serializable obj, OutputStream outputStream) //Serializes an Object to the specified stream.

在存储到HDFS中时,您可以存储

byte[]
从序列化返回的内容。获取对象时,您可以将强制类型转换为对应的对象,例如ex:文件对象,然后可以将其取回。

就我而言,我在Hbase列中存储了一个哈希图,我将其检索回去,并在我的映射器方法中原样作为Hashmap ..并成功实现了该任务。

当然,您也可以用相同的方式来做…

另一件事是,您也可以使用Apache Commons IO
引用this(

org.apache.commons.io.FileUtils
);但是稍后您需要将此文件复制到HDFS。因为您想要HDFS作为数据存储。

FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray);

注意:jar apache commons io和apache commons lang在hadoop集群中始终可用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5083381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存