Apache Avro è un formato di archiviazione del contenitore di oggetti orientato alle righe per Hadoop, nonché una chiamata di procedura remota e un framework di serializzazione dei dati. Hadoop è un framework di programmazione gratuito basato su Java che supporta l'elaborazione di grandi set di dati in un ambiente di elaborazione distribuito. Avro è ottimizzato per le operazioni di scrittura e include un formato wire per la comunicazione tra i nodi.
Avro effettua la traduzione tra diversi nodi tramite la definizione dei dati e dati permanenti serializzati. Avro utilizza la notazione degli oggetti JavaScript per definire i tipi di dati e i protocolli. I dati vengono trasmessi in streaming in un formato binario efficiente e compatto. Un file contenitore Avro è costituito da un'intestazione e da uno o più blocchi di archiviazione file.
L'intestazione è composta da:
- 4 byte di ASCI "OBJ1"
- Metadati del file inclusa la definizione dello schema
- Un indicatore di sincronizzazione: 16 byte di codice generato casualmente
Avro include anche il proprio IDL (Interface Descriptor Language) chiamato Avro, oltre a JSON per definire i tipi di dati e i protocolli. IDL facilita l'adozione da parte degli utenti che sono abituati a IDL tradizionali più comuni, che hanno una sintassi più simile a C / C ++.
Avro è un progetto di primo livello sponsorizzato da Apache Software Foundation (ASF).