Apache Avro é um formato de armazenamento de contentores de objectos orientado a linhas para o Hadoop, bem como uma estrutura de chamada de procedimento remoto e serialização de dados. Hadoop é um framework de programação livre, baseado em Java que suporta o processamento de grandes conjuntos de dados em um ambiente computacional distribuído. O Avro é otimizado para operações de escrita e inclui um formato de fio para comunicação entre nós.
Avro faz a tradução entre diferentes nós através da definição dos dados e dados serializados permanentes. O Avro usa notação de objeto JavaScript para definir os tipos de dados e protocolos. Os dados são transmitidos em um formato binário eficiente e compacto. Um arquivo contendo Avro consiste de um cabeçalho e um ou vários blocos de armazenamento de arquivos.
O cabeçalho é composto de:
- 4 bytes de ASCI "OBJ1"
- Metadados de arquivo incluindo a definição do esquema
- Um marcador de sincronização: 16 bytes de código gerado aleatoriamente
Avro também inclui sua própria linguagem de descrição de interface (IDL) também chamada Avro, além do JSON para definir tipos de dados e protocolos. IDL facilita a adoção por usuários que estão acostumados a IDLs tradicionais mais comuns, que têm uma sintaxe mais parecida com C/C++.
Avro é um projeto de alto nível patrocinado pela Apache Software Foundation (ASF).