Avro是一个数据序列化系统,提供了如下功能:

• 丰富的数据结构。

• 紧凑、快速、二进制数据格式。

• 存储持久性数据的容器文件。

• 远程过程调用 (RPC)。

• 与动态语言的简单集成。读取或写入数据文件也不需要代码生成来使用或实现 rpc 协议。代码生成是一种可选的优化, 仅适用于静态类型化语言。

Avro有C、C++、Java等多种语言版本,本文是以C语言版本avro-c-1.8.2为例,介绍Avro安装步骤。由于Avro是开源项目,需要先下载源代码,经过编译之后才能安装。下边简单列举下安装步骤。

下载

# wget http://mirror.bit.edu.cn/apache/avro/avro-1.8.2/c/avro-c-1.8.2.tar.gz

编译与安装

#tar zxf avro-c-1.8.2.tar.gz

# cd avro-c-1.8.2#mkdirbuild

# cd build

# cmake ..

#make#make install

遇到的问题

使用cmake命令生成Makefile的时候可能会报错,如下所示:

....-- Could NOT findSnappy (missing: SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR)

Disabled snappy codec. libsnappy not found or zlib not found.-- checking for module 'liblzma'

-- package 'liblzma'not found

Disabled lzma codec. liblzma not found.-- checking for module 'jansson>=2.3'

-- package 'jansson>=2.3'not found

CMake Error at CMakeLists.txt:178(message):

libjansson>=2.3not found-- Configuring incomplete, errors occurred!See also"/data/appstore/avro-c-1.8.2/build/CMakeFiles/CMakeOutput.log".

这是由于缺少lib导致的,需要安装相应的lib,使用下列命令安装:

# yum installsnappy

#yum install snappy-devel

#yum installlzma

#yum install jansson-devel

安装lzma后,还是报“package 'liblzma' not found”,不过Makefile已经成功生成,后续编译和安装都没问题。如果还有报其他lib “not found”,安装即可。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐