16.6 本章小结

本章内容主要包括:16.1节首先将说明如何声明Avro模式,以及如何对数据进行序列化;然后介绍对象容器文件的具体格式和RPC中Avro的使用方法,包括协议的声明、协议传输的格式等;最后介绍如何解析获取的数据,重点说明如何处理写入模式和读取模式的不同。16.2节介绍了在C和C++中如何使用Avro,主要叙述函数的使用,其中引用关于学生模式的具体例子来详细介绍。16.3节首先介绍Java中使用Avro所需要的一些包,后面给出了上节中学生模式例子的Java实现程序。16.4节主要介绍了GenAvro语言,说明如何用类似高级语言的方法来声明一个Avro模式。16.5节简单介绍了Avro的简单验证安全层,具体说明了通信双方如何进行协商。

Avro作为一个数据序列化系统,为数据密集型动态应用程序提供了数据存储和交换的平台,它的最大特点就是模式和数据在一起,也就是在反序列化时写入的模式和读出的模式都是已知的,这为Avro带来了很多好处,如生成的数据文件很小等。

今后,Avro可能会替换Hadoop现有的RPC, Avro的很多特性是为Hadoop及相关项目准备的:容器文件中的同步器可以使MapReduce快速地分离文件;不需要生成代码,有利于Avro使用于Hive和Pig;对于大规模存储较小的数据文件有利于减少数据量等。Avro数据结构的特性和多语言支持的优势还会帮助Hadoop在跨版本、多语言等方面提高性能。