Avro是数据序列化系统, .avsc
1) 因为Hadoop的Writable接口缺乏语言的可移植性,Doug Cutting创建了Avro可被多种语言处理,即独立于具体的编程语言
2) 数据使用二进制编码,模式使用JSON
3) Avro规范对所有实现都必须支持的二进制格式进行了精确定义
4) 丰富的模式解析能力
5) 指定对象容器格式
Avro数据类型和模式
1) 基本数据类型
2) 复杂类型
3) 映射
> 通用映射:运行前不知道具体模式,可以使用动态映射
> 特殊映射:读写之前有模式备份,代码生成能优化数据处理
> 自反映射:
序列化和反序列化
> 特定API:DatumWriter/Encoder
Avro数据文件
1) 存储Avro对象序列
2) 头部有元数据:Avro模式+sync marker
3) 可切分
4) FsInput/DataFileReader