请尝试使用来自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集群中始终可用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)