Serialization HBase数据存储的这种方法正确吗?

Serialization HBase数据存储的这种方法正确吗?,serialization,hbase,deserialization,Serialization,Hbase,Deserialization,在这里,我要做的是在HBase表中存储和检索序列化数据,然后按原样检索它们。我想遵循这个方法。如果我错了,请告诉我 put.add(streamColumnFamily,streamColumnName,serializedData); 这里serializedData属性将按类处理。我想说的是,这个方法正确吗。我是否能够按原样检索存储的数据。(int为int,float为float,String为String等)是的,方法是正确的。HBase以字节存储所有内容。 你基本上是这样做的 byte

在这里,我要做的是在HBase表中存储和检索序列化数据,然后按原样检索它们。我想遵循这个方法。如果我错了,请告诉我

put.add(streamColumnFamily,streamColumnName,serializedData);

这里serializedData属性将按类处理。我想说的是,这个方法正确吗。我是否能够按原样检索存储的数据。(int为int,float为float,String为String等)

是的,方法是正确的。HBase以字节存储所有内容。 你基本上是这样做的

byte[] key = createSomeKey();

Put put = new Put(key);
put.add(streamColumnFamily,streamColumnName,serializedData); 

HTable h = .... // create HTable from HAdmin 

h.put(put);
您还可以使用本机java序列化机制对对象进行序列化和反序列化,如下所示:

   public byte[] serialize(Serializable object) throws IOException {


      ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

      ObjectOutput stream = new ObjectOutputStream(byteArrayOutputStream);

      stream.writeObject(object);

      stream.flush();

      return byteArrayOutputStream.toByteArray()
    }


public Object deserialize(byte[] bytes){

     ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);

     ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);

     objectInputStream.readObject(); 
   }
此外,如果您正在序列化和反序列化基本对象,如Integer、Long、String。。。在
org.apache.hadoop.hbase.util