zoukankan      html  css  js  c++  java
  • Hadoop的简单序列化框架

    Hadoop提供了一个加单的序列化框架API,用于集成各种序列化实现。该框架由Serialization实现。

     

    其中Serialization是一个接口,使用抽象工厂的设计模式,提供了一系列和序列化相关并相互依赖对象的额接口。通过Serialization应用可以获得类型的Serializer实例,即将一个对象转化为一个字节流的实现实例;Deserializer实例和Serializer实例相反,它用于将字节流转为一个对象。

    /**
     * 
     * 包装一个序列化/反序列化对 (抽象工厂类)*/
    public interface Serialization<T> {
      
      /**
       * 允许客户端进行测试给的序列化是否支持给定的类
       */
      boolean accept(Class<?> c);
      /**
       * 获得用于序列化对象的Serializer实现
       */
      Serializer<T> getSerializer(Class<T> c);
    
      /**
       * 获得用于反序列化对象的Deserializer实现*/
      Deserializer<T> getDeserializer(Class<T> c);
    }

    如果需要使用Serializer来执行序列化,一般需要通过Open方法来打开Serializer,open()方法传入一个底层的流对象,然后就可以使用serializer()方法序列化对象对底层的流中。最后序列化结束时,通过close()方法关闭Serializer。
    Hadoop目前支持两个Serialization实现分别是支持W日table机制的WritableSerialization和支持Java序列化的JavaSerialization。通过JavaSerialization可以再MapReduce程序中方便的使用java类型,如int或String,但Java的ObjectSerialization不如Hadoop的徐燮华机制有效,非特殊情况不要尝试

  • 相关阅读:
    python使用smtplib库和smtp.qq.com邮件服务器发送邮件
    使用CreateRemoteThread把代码远程注入指定exe执行
    python带cookie提交表单自动登录
    linux+win7双系统重装win7修复grub的办法
    最后总结
    Alpha项目测试--个人第五次作业
    第四次结对编程作业
    第三次作业--原型设计
    熟悉使用工具---第二次作业
    虫虫吃第一颗豆子---第一次作业
  • 原文地址:https://www.cnblogs.com/java-cjt/p/4443852.html
Copyright © 2011-2022 走看看