您的位置:首页 > 其它

一个完整的Avro数据序列化例子

2014-07-22 17:15 330 查看
1.环境准备:

Avro官网下载Avro的jar文件,以最新版本1.7.4为例,分别下载avro-1.7.4.jar和avro-tool-1.7.4.jar;并下载JSON的jar文件core-asl和mapper-asl。将以上四个文件放入${HADOOP_HOME}/lib目录下(当前为/usr/local/hadoop/lib,为了以后hadoop项目方便)。

2.定义模式(Schema):

编辑如下内容,生成文件user.avsc:

3.编译模式:

在当前目录下执行如下命令:

这时候当前目录下会生成example/avro/User.java目录和文件。

4 编写测试文件

编辑如下内容,生成文件Test.java:

5.编写编译文件:


编辑如下内容,生成文件compile.sh,注意其中的类路径:


6.编写运行文件:


编辑如下内容,生成文件run.sh,注意其中的类路径:


7.测试:


(1).编译:


运行compile.sh脚本,编译example/avro/User.java和Test.java文件,生成对应的类文件。


(2).打包User类文件:


jar cvf ./example .


(2).运行:


运行run.sh脚本,查看程序输出结果。


(3).查看avro序列化效果:


在Test.java的写入部分添加一个for循环,多写一些user(如100次)到user.avro,然后把run.sh的输出结果存储到纯文本中user.plain中,观察user.avro和user.plain的大小:


由以上输出结果可以对avro的序列化功能有一个直观感受。

参考资料:

http://avro.apache.org/docs/1.7.4/gettingstartedjava.html

/article/10465011.html

wzw0114

2013.07.17
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: