文章目录
一、Avro是什么?
Avro是一个独立于编程语言的数据序列化系统,由Hadoop的创始人Doug Cutting创建。为了解决Hadoop中writable类型的不足(缺乏语言的可移植性)
avro模式通常用json编写,数据通常采用二进制格式编码。
优点:
- 丰富的数据结构。
- 紧凑、快速、二进制的数据格式。
- 一个容器文件,用来存储持久性数据。
- 远程程序呼叫 (RPC)。
- 与动态语言的简单集成。代码生成不需要读取或编写数据文件,也不需要使用或实施 RPC 协议。代码生成作为可选优化,仅值得针对静态键入的语言实施。
- schema和data同时存放在文件中存储,block之间有同步标记。
- avro是可切割的
数据序列化:
java–>ObjectOutputStream/ObjectInputStream
hadoop–>Writable–>DataOutputStream/DataInputStream
二、使用步骤
1. 下载
- 官网地址http://avro.apache.org/
- 点击进去后,下拉点击下载,进入最新版本
- 下拉点击下载
- 点击图中链接
- 下载稳定版
- 找到Java点进去
- 下载下面红框四个
三、 Java中使用Avro
参考官方文档,http://avro.apache.org/docs/current/gettingstartedjava.html,使用Java代码实现avro串行化
1. 新建maven项目
在maven中的pom.xml的<dependencies></dependencies>
中加入下面代码,根据自己版本来
<dependency>
<groupId>org.apache.avro