`
paddy.w
  • 浏览: 497015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用hadoop序列化机制时的一点小问题

 
阅读更多
        其实在现在接触到的数据处理中还没怎么碰到到需要自己实现序列化对象的情况。偶然看到一篇文章,说的是由于偷懒而造成序列化和反序列化时造成的不必要的时间和空间消耗。其实如果自己遇到这种问题,应该也会使用同样偷懒的方法。这里说明一下,以便提醒自己要这么做时,是否考虑到了性能方面的问题。
        原文地址:http://teddziuba.com/2008/04/dont-serialize-java-object-in.html

@Override
public void write(DataOutput out) throws IOException {
	ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
	ObjectOutputStream objectOut = new ObjectOutputStream(byteOutStream);
		
	objectOut.writeObject(getContainedObject());
	objectOut.close();
		
	byte[] serializedObject= byteOutStream.toByteArray();
		
	out.writeInt(serializedObject.length);
	out.write(serializedModel);

}

        作者在写一个Writable类时,因为这个类有太多的成员变量(because it had a ton of instance variables),所以索性将这个类先放到一个字节数组中,然后再将此数组和数组长度写出去。这么做固然减少了相当的代码量,但可能带来的是性能方面的损耗。
        作者做了个测试,序列化一个字节数组用了953字节,而直接序列化变量则只用了296字节。而且正确的序列化方法使一个有1600条记录的sequencefile从1.4GB压缩到了825MB。
        在时间消耗方面,序列化object用了7.2ms,反序列化用了1.7ms。而用stream I/O则序列化只用了76000ns,反序列化用了58000ns。
分享到:
评论

相关推荐

    Hadoop序列化机制

    NULL 博文链接:https://wmwork2010.iteye.com/blog/629320

    Hadoop权威指南 中文版

     ·熟悉hadoop的数据和ilo构件,用于压缩、数据集成、序列化和持久处理  ·洞悉编~mapreduce实际应用时的常见陷阱和高级特性  ·设计、构建和管理一个专用的hadoop集群或在云上运行hadoop  ·使用高级查询语言...

    Avro数据序列化系统(1)

    hadoop 开发基础知识之Avro数据序列化系统讲义(1)

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    02-hadoop中的序列化机制.avi 03-流量求和mr程序开发.avi 04-hadoop的自定义排序实现.avi 05-mr程序中自定义分组的实现.avi 06-shuffle机制.avi 07-mr程序的组件全貌.avi 08-textinputformat对切片规划的源码...

    hadoop段海涛老师八天实战视频

    第一天 hadoop的基本概念 伪分布式hadoop集群安装 hdfs mapreduce 演示 ... 02-hadoop中的序列化机制.avi 03-流量求和mr程序开发.avi 04-hadoop的自定义排序实现.avi 05-mr程序中自定义分组的实现.avi

    Hadoop权威指南 第二版(中文版)

     序列化框架  Avro  依据文件的数据结构  写入SequenceFile  MapFile 第5章 MapReduce应用开发  配置API  合并多个源文件  可变的扩展  配置开发环境  配置管理  辅助类GenericOptionsParser,Tool和...

    Hadoop实战(第2版)

    2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源2.3 将数据导出Hadoop 2.3.1 将数据导入本地文件系统技术点8 自动复制HDFS 中的文件2.3.2 数据库技术点9 使用Sqoop 将...

    Hadoop权威指南(中文版)2015上传.rar

    序列化框架 Avro 依据文件的数据结构 写入SequenceFile MapFile 第5章 MapReduce应用开发 配置API 合并多个源文件 可变的扩展 配置开发环境 配置管理 辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 ...

    Hadoop: The Definitive Guide

    ·熟悉Hadoop的数据和IlO构件,用于压缩、数据集成、序列化和持久处理 ·洞悉编~MapReduce实际应用时的常见陷阱和高级特性 ·设计、构建和管理一个专用的Hadoop集群或在云上运行Hadoop ·使用高级查询语言Pig来处理...

    Hadoop 权威指南(中文版)

     ·熟悉hadoop的数据和ilo构件,用于压缩、数据集成、序列化和持久处理  ·洞悉编~mapreduce实际应用时的常见陷阱和高级特性  ·设计、构建和管理一个专用的hadoop集群或在云上运行hadoop  ·使用高级查询...

    史上最全面的hadoop入门视频教程

    手把手视频详细讲解项目开发全过程,需要的小...第六章 MapReduce的排序和序列化 第七章 MapReduce的运行机制和join操作 第八章 MapReduce的其他操作和yarn 第九章 数仓Hive基本操作 第十章 数仓Hive的其他操作和调优

    Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    MapReduce编程模型3.1 MapReduce编程模型概述3.1.1 MapReduce编程接口体系结构3.1.2 新旧MapReduce API比较3.2 MapReduce API基本概念3.2.1 序列化3.2.2 Reporter参数3.2.3 回调机制3.3 Java API解析3.3.1 ...

    Hadoop中MapReduce基本案例及代码(二)

    序列化/反序列化机制 当自定义一个类之后,如果想要产生的对象在hadoop中进行传输,那么需要 这个类实现Writable的接口进行序列化/反序列化 案例:统计每个人产生的总流量 数据源 自定义类序列化 import java.io....

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    10.2.1 序列化和反序列化 技术点64 载入日志文件 10.2.2 UDF、分区、分桶和压缩 技术点65 编写UDF 和压缩分区表 10.2.3 数据合并 技术点66 优化Hive 合并 10.2.4 分组、排序和explain 10.3 本章小...

    Apache Hadoop---Avro.docx

    Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用。它的主要特点有:支持二进制序列化方式,可以便捷,快速地处理大量数据;动态语言友好,Avro提供的机制使动态语言可以方便地处理Avro数据。

    Hadoop 培训课程(3)MapReduce_1

    Hadoop 培训课程(3)MapReduce_1 MapReduce原理*** MapReduce执行过程** ...Writable接口与序列化机制*** ---------------------------加深拓展---------------------- MapReduce的执行过程源码分析

    大型分布式网站架构与实践

     1.1.2 对象的序列化 4  1.1.3 基于TCP协议实现RPC 6  1.2 基于HTTP协议的RPC 9  1.2.1 HTTP协议栈 9  1.2.2 HTTP请求与响应 15  1.2.3 通过HttpClient发送HTTP请求 16  1.2.4 使用HTTP协议的优势 17 ...

    2017最新大数据架构师精英课程

    76_hadoop的存储问题+ B: J K& G* B4 Z 77_hadoop的hdfs常用的命令 78_hadoop的存储过程 79_hadoop的大数据节点% K S, J! U3 W& o2 d) Q 80_hdfs-maven-hdfs API访问8 s8 J# W* l- i% x, ]: L! L 81_hdfs-maven-idea...

    Spark-Core学习知识笔记整理

    1.9原则八:使用Kryo优化序列化性能 47 1.10原则九:优化数据结构 48 2资源调优 48 2.1调优概述 48 2.2 Spark作业基本运行原理 49 2.3资源参数调优 50 第六章 Spark架构和工作机制 52 1 Spark架构 52 1.1 Spark架构...

Global site tag (gtag.js) - Google Analytics