摘要: 在程序中,集合类每天都在使用,以致于某些代码充斥着List和Map,一直没有机会整理下它们背后的实现原理。这几天不太忙,正好可以看会代码,补充下概念。和集合类的大致分类类似,下面我也分List,Map和Set来描述。一. List1).ArrayList ArrayList维护着一个对象数组。如果调用new ArrayList()后,它会默认初始一个size=10的数组。 每次add操作都要检查数组容量,如果不够,重新设置一个初始容量1.5倍大小的新数组,然后再把每个元素copy过去。 在数组中间插入或删除,都要移动后面的所有元素。(使用System.arraycopy())2).Lin 阅读全文
posted @ 2012-11-22 12:41 beanmoon 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 注:该文是前一篇博客的很好的中文说明。Avro(读音类似于[ævrə])是Hadoop的一个子项目,由Hadoop的创始人Doug Cutting(也是Lucene,Nutch等项目的创始人,膜拜)牵头开发。Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用。它的主要特点有:支持二进制序列化方式,可以便捷,快速地处理大量数据;动态语言友好,Avro提供的机制使动态语言可以方便地处理Avro数据。 当前市场上有很多类似的序列化系统,如Google的Protocol Buffers, Facebook的Thrift。这些系统反响良好,完全可以满足普通应用的需求。针对重复开发的 阅读全文
posted @ 2012-11-22 10:39 beanmoon 阅读(837) 评论(0) 推荐(0) 编辑
摘要: IntroductionApache Avro™ is a data serialization system.Avro provides:Rich data structures.A compact, fast, binary data format.A container file, to store persistent data.Remote procedure call (RPC).Simple integration with dynamic languages. Code generation is not required to read or write data files 阅读全文
posted @ 2012-11-22 10:24 beanmoon 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 前言接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇到的这些问题有些是Hadoop自身的缺陷(短板),有些则是使用的不当。在解决问题的过程中,有时需要翻源码,有时会向同事、网友请教,遇到复杂问题则会通过mail list向全球各地Hadoop使用者,包括Hadoop Committer(Hadoop开发者)求助。在获得很多人帮助后,自己将遇到问题和心得整理成文,希望本文可以对那些焦头烂额的Hadoop新手们有所帮助,少走笔者的弯路。PS. 本文基于 阅读全文
posted @ 2012-11-22 00:23 beanmoon 阅读(477) 评论(0) 推荐(0) 编辑